Вопрос или проблема
У меня много старых временных файлов от приложений, таких как MS Word, Excel и других, с именами типа ~my file.docx
. Приложения закрыты, но временные файлы остаются.
MS Word, Excel и другие могут автоматически сохранять редактируемые файлы, чтобы предотвратить случайную потерю данных, как файлы, начинающиеся с символа ~
, однако, если имя файла начинается с символа ~
, это не доказывает, что этот файл является старым временным файлом, потому что другие приложения и пользователи Ubuntu также могут создавать файлы, которые начинаются с символа ~
. Будьте осторожны с файлами, которые вы удаляете с помощью следующих команд, и запустите find
без rm
после него, чтобы проверить, какие файлы будут удалены, не удаляя ничего.
Поскольку ~
является псевдонимом для вашего домашнего каталога в Bash, вам необходимо предотвратить его разворачивание (например, рассматривая ~
как буквальный символ, заключив его в одинарные или двойные кавычки). Чтобы найти все файлы, которые начинаются с символа ~
в вашем текущем каталоге и его подкаталогах, выполните следующую команду:
find . -type f -name '~*'
Это выведет список всех файлов, которые начинаются с ~
, чтобы показать вам, что у вас есть, не удаляя ничего. Чтобы удалить файлы, которые начинаются с символа ~
в вашем текущем каталоге и его подкаталогах, выполните следующую команду:
find . -type f -name '~*' -delete
find .
ищет в текущем каталоге (обозначенном .
) и всех его подкаталогах
-type f
совпадает только с файлами и игнорирует каталоги
-name '~*'
находит файлы, которые начинаются с символа ~
-delete
удаляет найденные файлы
Ответ или решение
Конечно, давайте разберем вопрос касательно удаления временных файлов, содержащих тильду ("~") в имени файла, через Bash. Важность этой темы заключается в том, что временные файлы создаются множеством программ, таких как Microsoft Word и Excel, в целях предотвращения потери данных. Однако, после закрытия приложений, эти временные файлы могут оставаться на компьютере, занимая место и потенциально создавая беспорядок в файловой системе.
Теория
Тильда ("~") в командной оболочке Bash ассоциируется с текущим домашним каталогом пользователя. Однако в именах файлов она часто используется как первый символ временных файлов, создаваемых различными приложениями. Когда мы говорим об удалении таких файлов с именами, начинающимися с тильды, важно различать систематическую и некорректную интерпретацию этих файлов.
Когда вы используете тильду в именах файлов в Bash, она может интерпретироваться как ссылка на ваш домашний каталог, а не как буквально символ "~". Поэтому возникает проблема, когда Bash не позволяет корректно идентифицировать файлы с тильдой в начале их имени, так как интерпретатор пытается расширить их до каталога, а не так, как это задумано программами.
Пример
Рассмотрим пример команды, которую вы можете использовать в Bash для поиска всех файлов, начинающихся с тильды, в текущем каталоге и его подкаталогах:
find . -type f -name '~*'
В этом примере команда find
действует следующим образом:
.
обозначает, чтобы искать в текущем каталоге и всех его подкаталогах.-type f
указывает, что мы ищем только файлы (игнорируя директории).-name '~*'
специфично задаёт шаблон, где~*
значит «все файлы, которые начинаются с тильды».
Применение
Для удаления таких файлов используется флаг -delete
:
find . -type f -name '~*' -delete
Это дополнение к предыдущей команде фактически удаляет найденные файлы. Тем не менее, перед удалением файлов всегда рекомендуется выполнить команду find
без флага -delete
, чтобы убедиться, что будет удалено именно то, что нужно, так как файлы с тильдой могут быть созданы и другими приложениями, и могут быть важны.
Конкретные шаги:
- Перейдите в каталог, где вы хотите проверить наличие и удалить временные файлы.
- Выполните команду
find . -type f -name '~*'
для просмотра всех файлов, которые начинаются с тильды. Визуально просмотрите список файлов. - Если вы уверены, что файлы могут быть безопасно удалены, выполните
find . -type f -name '~*' -delete
.
Заключение
Представленный подход обеспечивает безопасный способ управления временными файлами в Linux или Unix-подобных системах. Настоятельно рекомендуется быть внимательным при удалении файлов с использованием командной строки, чтобы избежать случайного удаления важных данных. Всегда проверяйте список файлов, чтобы подтвердить, что они действительно временные и больше не нужны, прежде чем приступать к их удалению. This practice not only helps maintain a clean and efficient file system but also encourages precise and deliberate management of digital resources.