Chciałbym dodać prefiks do wszystkich folderów i katalogów.
Przykład:
mam
Hi.jpg
1.txt
folder/
this.file_is.here.png
another_folder.ok/
Chciałbym dodać przedrostek „PRE_”
PRE_Hi.jpg
PRE_1.txt
PRE_folder/
PRE_this.file_is.here.png
PRE_another_folder.ok/
Pozdrowienia,
Odpowiedzi:
Dzięki Peterowi van der Heijdenowi , oto jeden, który będzie działał dla nazw plików ze spacjami:
(„-” jest potrzebne, aby odnieść sukces w przypadku plików zaczynających się od myślników, których nazwy w innym przypadku byłyby interpretowane jako przełączniki polecenia mv)
źródło
ls
polecenie na*
i umieścisz podwójne cudzysłowy wokół argumentów namv
, zadziała to dla plików zawierających spacje.Użyj the przemianować skrypt w ten sposób:
Nie ma problemów z metaznakami lub białymi znakami w nazwach plików.
źródło
rename
zawsze pomagał mi bardzo łatwo obsługiwać wiele zmian nazw plików.Aby dodać przedrostek lub sufiks do plików (katalogów), możesz użyć prostego i wydajnego sposobu przez xargs :
Używa opcji zastępującej paramerter w xargs: -I. Więcej szczegółów znajdziesz na stronie man.
źródło
ls *.old | xargs -I {} mv {} PRE_{}
Można to zrobić, uruchamiając proste
find
polecenie:Powyższe polecenie spowoduje przedrostek wszystkich plików i folderów w bieżącym katalogu
PRE_
.źródło
Aby dodać prefiks do wszystkich plików i folderów w bieżącym katalogu za pomocą narzędzia util-linux
rename
(w przeciwieństwie doprename
wariantu perl z Debiana i niektórych innych systemów), możesz wykonać:Znajduje to pierwsze wystąpienie pustego ciągu (który znajduje się natychmiast), a następnie zastępuje to wystąpienie twoim przedrostkiem, a następnie przykleja resztę nazwy pliku do końca tego. Gotowe.
W przypadku przyrostków musisz użyć wersji Perla lub użyć funkcji find .
źródło
util-linux
w Debian Stretch wydaje się udostępniać to jako plik/usr/bin/rename.ul
.Jeśli masz Rubiego (1,9+)
źródło
z Perlem:
źródło
Oto prosty skrypt, którego możesz użyć. Lubię używać niestandardowego modułu
File::chdir
do obsługicd
operacji zarządzania , więc aby używać tego skryptu bez zmian, będziesz musiał go zainstalować (sudo cpan File::chdir
).źródło
W moim systemie nie mam
rename
polecenia. Oto prosta jedna wkładka. Znajduje rekursywnie wszystkie pliki HTML i dodajeprefix_
przed ich nazwami:źródło
find
tobą możesz również wykonywać polecenia, bez pętli: stackoverflow.com/a/33297439/2351568Spowoduje to przedrostek plików w ich katalogu.
To
${f%/*}
ścieżka do ostatniego ukośnika/
-> katalogTo
${f##*/}
jest tekst bez niczego przed ostatnim ukośnikiem/
-> nazwa pliku bez ścieżkiA więc tak to wygląda:
źródło