Я разработал аккуратный способ избавиться от дубликатов файлов. Вы знаете, те, которые содержат в своих именах "(1).", "(2).", "(3)." И т. Д. В окне терминала в командной строке вы вводите "rm " [обратная косая черта] "). ", но без кавычек. Это сделает это. [Обратная косая черта] "\" означает, что следующий символ принимается как просто символ, а не как часть пары круглых скобок. Это работает, когда больше ничего не будет. Кстати, я попытался ввести «\» в команду «rm», но она не отображалась должным образом, поэтому вместо этого я поместил туда термин [обратная косая черта].
Появление «\» в папке или имени файла также указывает на наличие пробела. Использование пробелов в именах встречается не так часто, если только вы не работаете с Windows. Windows просто заключает в квадратные кавычки «весь путь \ имя файла». Вы также можете сделать это в Ubuntu или просто поставить обратную косую черту "\" перед пробелом. Но что, если вы хотите заменить пробел другим символом? Как дефис или подчеркивание? Как бы вы сделали это для всех папок и файлов одновременно?
Или что, если вы решите просто убрать пробелы, просто соберите остальные символы вместе? Как бы вы это сделали?
И здесь есть сложность: просто избавьтесь от любых пробелов или пробелов. даже если присутствует более одного подарка.
И чтобы обернуть это, как обнаружить и удалить и файлы, которые полностью пусты. Или папки, которые пусты.
Я часто забываю приблизительно rename
. Вот то, как сделать это с простым ударом:
$ touch " leading spaces" "trailing spaces "
$ printf ">%s<\n" *spaces*
> leading spaces<
>trailing spaces <
$ for f in *spaces*; do
new=${f##*([[:blank:]])} # remove leading whitespace
new=${new%%*([[:blank:]])} # remove trailing whitespace
mv "$f" "$new"
done
$ printf ">%s<\n" *spaces*
>leading spaces<
>trailing spaces<
Для удаления пробелов, несколько подходов здесь: https://stackoverflow.com/questions/2709458/bash-script-to-replace-spaces-in-file-names https://stackoverflow.com/questions/15347843/remove-whitespaces-from-filenames-in-linux
Этот легкий: "Сначала введите каталог с CD: CD/my/directory и затем выполненный: для f в *; сделайте mv "$f" echo $f | tr ' ' '_'
; сделанный"
Еще более простой: "переименуйте "s///g" *"
Для того, чтобы избавиться от пробелов, символов нижнего подчеркивания и дефисов: "переименуйте-i "s / [-_]//g" *"
Для того, чтобы избавиться от файлов, которые имеют нулевые байты: https://stackoverflow.com/questions/5475905/linux-delete-file-with-size-0
Для обработки или пустые файлы или папки, я нашел этого: "Удалите пустые файлы (удалите 'эхо' из команды): Код: найти. - пустой - тип f-print0 | xargs-0 комнат эха Удаляет пустые каталоги (удалите 'эхо' из команды): Код: найти. - пустой - тип d-print0 | xargs-0 эха rmdir" http://www.linuxquestions.org/questions/programming-9/bash-delete-empty-files-910203/
Кажется нечетным, что я ответил на свой собственный вопрос в течение половины часа, но это - питание поисковой системы при выборе правильных слов для поиска на. Однако существуют положения и условия, попросил, чтобы не производили готовых ответов, такой как с другим вопросом, который я отправил здесь на днях. Я исследовал его трудно сначала, не нашел результатов, так отправил его на AskUbuntu. Я проверил, и все еще никакой ответ. Вероятно, придется вернуться к выполнению поисков, если я могу думать, что еще спросить.
.gz
, .1
, .old
. Но никогда просто не удаляйте нормальные файлы журнала, это вызовет весь вид нежелательных признаков.
– Videonauth
22 November 2016 в 20:31
Для удаления любого количества продвижения пробелов от имен файлов можно использовать rename
(prename
):
rename -n 's/^ *//' *
Для удаления любого количества конечных пробелов от имен файлов можно использовать rename
(prename
):
rename -n 's/ *$//' *
Удаляют -n
(пробный прогон), если Вы удовлетворены именами файлов.
Для удаления файлов или папок, которые пусты (рекурсивно):
find . -empty
Удовлетворенный? Позвольте действию произойти:
find . -empty -delete
Только в текущем каталоге:
find . -maxdepth 1 -empty -delete
Также использование -type f
только для файлов и -type d
только для каталогов, если Вы хотите.
Read man rename
и man find
для получения большей идеи.