Я хотел бы добавить префикс для всех папок и каталогов.
Пример:
у меня есть
Hi.jpg
1.txt
folder/
this.file_is.here.png
another_folder.ok/
Я хотел бы добавить префикс "PRE_"
PRE_Hi.jpg
PRE_1.txt
PRE_folder/
PRE_this.file_is.here.png
PRE_another_folder.ok/
С Уважением,
Ответы:
Благодаря Питеру ван дер Хейдену , вот тот, который будет работать для имен файлов с пробелами в них:
(«-» необходимо для успешного выполнения файлов, начинающихся с тире, имена которых иначе интерпретировались бы как переключатели для команды mv)
источник
ls
команду на*
и поставите двойные кавычки вокруг аргументовmv
, она будет работать для файлов, содержащих пробелы.Используйте переименовать скрипт таким образом:
Нет проблем с метасимволами или пробелами в именах файлов.
источник
rename
всегда помогал мне легко обрабатывать несколько переименований файлов.Для добавления префикса или суффикса для файлов (каталогов), вы можете использовать простой и мощный способ с помощью xargs :
Он использует параметр замены параметра xargs: -I. И вы можете получить более подробную информацию из справочной страницы.
источник
ls *.old | xargs -I {} mv {} PRE_{}
Это можно сделать с помощью простой
find
команды:Приведенная выше команда префикс всех файлов и папок в текущем каталоге с
PRE_
.источник
Чтобы добавить префикс ко всем файлам и папкам в текущем каталоге с помощью util-linux
rename
(в отличиеprename
от варианта perl из Debian и некоторых других систем), вы можете сделать:Это находит первое вхождение пустой строки (которая обнаруживается немедленно), а затем заменяет это вхождение вашим префиксом, а затем склеивает оставшуюся часть имени файла до конца этого. Готово.
Для суффиксов вам нужно использовать версию perl или использовать find .
источник
util-linux
на Debian Stretch, кажется, обеспечивает это как/usr/bin/rename.ul
.Если у вас есть Ruby (1.9+)
источник
с Perl:
источник
Вот простой скрипт, который вы можете использовать. Мне нравится использовать нестандартный модуль
File::chdir
для управленияcd
операциями, поэтому чтобы использовать этот скрипт как есть, вам нужно установить его (sudo cpan File::chdir
).источник
В моей системе у меня нет
rename
команды. Вот простой вкладыш. Он находит все файлы HTML рекурсивно и добавляетprefix_
перед их именами:источник
find
вы также можете выполнять команды, без необходимости в цикле: stackoverflow.com/a/33297439/2351568Это префикс ваших файлов в их каталоге.
${f%/*}
Путь до последнего слэша/
-> каталог${f##*/}
Текст без чего - либо до последнего слеша/
-> имя файла без путиВот как это происходит:
источник