Кто-либо знает, как записать сценарий удара, который может переименовать все папки в каталоге? Это должно удалить первые слова всех папок.
В настоящее время это похоже на это:
ABC DEF Folder1
ABC DEF Folder2
ABC DEF Folder3
...
ABC DEF Folder1000
Удалите идентичные буквы
ABC DEF
Достигнуть
Folder1
Folder2
Folder3
...
Folder1000
Я довольно плохо знаком с Linux и не делаю получил подсказку об ударе, пишущем сценарий все же. Кто-либо, кто может обеспечить подсказки / решения?
Быстрый ответ
Я не обеспокоился бы сценарием... просто rename
rename s/ABC\ DEF\ // *
s/string1/string2/заставляет это искать и заменять string1 строкой 2.
строка 1 сделана более длинными должными пробелами и потребностью выйти из них '\', представьте в виде строки 2 являющийся пустым '//'
наконец * вынуждает это работать над всеми файлами/директорами в текущем каталоге
Читайте man rename
и это даст представления. Основная страница refererences 'perlexprs' (выражения жемчуга; значение больше man
страницы), но они - надмножество POSIX, означающих Вас, имеют больше силы, но может просто ограничить себя posix также.
Для простых текстовых соответствий, таких как это (которые действительно не требуют питания регулярных выражений) существует также mmv
например, данный
$ ls -d */
ABC DEF Folder1/ ABC DEF Folder3/ ABC DEF Folder6/ ABC DEF Folder9/
ABC DEF Folder10/ ABC DEF Folder4/ ABC DEF Folder7/
ABC DEF Folder2/ ABC DEF Folder5/ ABC DEF Folder8/
затем
mmv -r 'ABC DEF *' '#1'
результаты в
$ ls -d */
Folder1/ Folder2/ Folder4/ Folder6/ Folder8/
Folder10/ Folder3/ Folder5/ Folder7/ Folder9/
FWIW это не на самом деле намного больше работы для сценариев его в (удар или POSIX sh) оболочка -
for f in */; do mv -- "$f" "${f#ABC DEF }"; done