Я пытаюсь найти и удалить все файлы, которые начинаются с .
в каталоге, и я знаю, что могу сделать это через командный терминал, но я ОЧЕНЬ новичок в Ubuntu и не совсем знаю, обходных команд пока нет. Любая помощь будет оценена!
Скрытые файлы не должны быть двоичными файлами.
можно использовать следующую команду, чтобы сделать это:
find /path/to/start/ -maxdepth 1 -name ".*" -type f -delete
Это будет искать файлы в /path/to/start/
запуск с точки (-name ".*"
, *
средства все), не ища в подкаталогах (-maxdepth 1
, изменение 1
для поиска глубже) только файлы (-type f
) и удалит все результаты (-delete
).
Это - не всегда хорошая идея удалить эти файлы! быть уверенным, что Вы знаете то, что Вы делаете прежде, чем выполнить это. Некоторые файлы скрыты по причине.
Можно также сделать эту оболочку использования шарики и для цикла:
for file in .[^.]*; do rm "$file"; done
for file in GLOB; do ... done
развернет ШАРИК до всех имен файлов, которые соответствуют ему, выполняют итерации через эти файлы, последовательно сохраняя каждого как $file
и затем выполненный команды между do
и done
на них.
Шарик .[^.]*
будет соответствовать всем файлам, начинающимся a .
и сопровождаемый неточечным символом ([^.]
). Последний необходим, чтобы не соответствовать .
и ..
/.
Так, например:
$ ls -1A
.dot and spaces
.dotfile1
internal.dot
nodot
$ for file in .[^.]*; do rm -v "$file"; done
removed ‘.dot and spaces’
removed ‘.dotfile1’
$ ls -1A
internal.dot
nodot
Если Вы хотите выполнить это для каталога кроме того, Вы в настоящее время находитесь в, просто добавляете путь к шарику. Например:
for file in /home/terdon/foobar/.[^.]*; do rm "$file"; done
Конечно, сам цикл не нужен как @gniourf_gniourf указанный в комментариях, и можно просто удалить все файлы с
rm .[^.]*