Массовое переименование файлов, включая подкаталоги
572
Shubham Mathur
У меня есть много файлов с "example.com" в них, и я хочу заменить его на "example.co", так как я изменяю свой сайт, у меня установлена программа переименования на моем сервере, и у меня также есть root-доступ.
Кто-нибудь может мне помочь переименовать его.
Пример расположения файлов:
/var/html/downloads/folder1/folder1-1/abc(example.com).mp4 /var/html/downloads/folder2/folder2-1/abc(example.com).mp4 /var/html/downloads/folder2/folder2-2/abc(example.com).mp4 /var/html/downloads/folder3/folder3-1/abc(example.com).mp4
Я надеюсь, что some1 поможет мне здесь :)
PS: я использовал этот cmd, но получил ошибку ниже:
cmd: find -name "*example*" | xargs -I '{}' rename s/com/co/ '{}'
Ошибка:
For more details see rename(1). rename: not enough arguments Usage: rename [options] expression replacement file...
Есть две «стандартные» версии переименования Linux, более новая, которая ожидает регулярные выражения Perl, и ваша, которая, я думаю, смоделирована после более старой версии Unix, которая принимает два параметра для поиска и замены. Попробуйте `xargs -I '{}' переименовать" com "" co "'{}'`. Хотя это может быть слишком широким, поскольку он поймает любой экземпляр «com». Если Perl установлен, вы, вероятно, можете использовать `prename` в качестве версии регулярного выражения, о которой вы думаете.
baochan 9 лет назад
0
В ваших именах файлов примеров не содержится «example.com» в имени файла. Вы пытаетесь заменить текст в содержимом файлов? В этом случае вы захотите использовать команду `sed` вместо` rename`.
baochan 9 лет назад
0
Ваш вопрос противоречив. Вы говорите, что вам нужно изменить example.com * внутри * файлов, но затем приводите пример для изменения имен файлов. Затем, в довершение, вы приводите примеры имен файлов, которые никоим образом не связаны с example.com и являются двоичными файлами .mp4. Здесь не что-то не так, все не так. На этот вопрос нет ответа.
Timbo 9 лет назад
0
Правильно спроектированный веб-сайт будет содержать относительные ссылки в HTML-файлах, поэтому эта проблема полностью исключена. Вы уверены, что в HTML закодированы fqdn? Или это предположение?
Timbo 9 лет назад
0
Глядя на текст использования, я уверен, что @baochan верен относительно вашей версии `rename`. Три пункта: (1) скрипт не выполнится, если есть встроенные пробелы (вам нужно использовать `find -print0` и` xargs -0`); (2) использование `xargs -I` запускает отдельное` rename` для каждого найденного файла - гораздо эффективнее просто передать по конвейеру `xargs -0 rename com co`, который запускает` rename` только один раз, со всеми файлами в его бегущая строка; (3) чтобы запустить `rename` один раз для каждого файла, вам не нужно вообще использовать` xargs` - используйте `find -name" * example * "-exec rename com co '{}' \;`
AFH 9 лет назад
0
0 ответов на вопрос
Похожие вопросы
-
9
В чем разница между командами "su -s" и "sudo -s"?
-
4
Требуется хороший бесплатный образ Ubuntu Server VMWare
-
4
Каковы различия между основными дистрибутивами Linux? Я замечу?
-
-
2
Ограничить использование процессора для Flash в Firefox?
-
2
Как мне заставить мой микрофон работать под Debian GNOME?
-
2
Конки установки - образцы / идеи?
-
3
Каковы различия между оконными менеджерами Linux?
-
2
ThunderBird / Синхронизация освещения с SE k770i
-
4
Файловая система Linux
-
6
Полноэкранная медленная вспышка в KDE 4