Mam wiele plików tiff o nazwie:
sw.001.tif
sw.002.tif
...
i chcę usunąć .tifna końcu każdego z plików. Jak mogę to zrobić za pomocą renamepolecenia?
Mam wiele plików tiff o nazwie:
sw.001.tif
sw.002.tif
...
i chcę usunąć .tifna końcu każdego z plików. Jak mogę to zrobić za pomocą renamepolecenia?
Odpowiedzi:
perl„y rename(jak zwykle znajduje się na Debianie gdzie również nazywana prename) lub tej pochodnej ( renameopakowania na Debianie)
rename 's/\.tif$//' *.tif
util-linux rename(jak zwykle można znaleźć w Red Hat rename.ulna Debianie):
rename -- .tif '' *.tif
(zwróć uwagę, że ta nazwa zmieniłaby się blah.tiffany.tifna blahfany.tif)
Aby zmienić nazwę, możesz:
$ for i in *.tif; do mv -i $i `basename $i .tif`; done
(-i, aby ostrzec przed zamianą pliku)
for i in ./*.tif; do mv -i "$i" "${i%.tif}"; done
rename -- .oldext .newext *.oldext
Zastępuje to stare rozszerzenie nowym. Aby po prostu usunąć rozszerzenie, możesz jawnie przekazać pusty ciąg znaków jako argument.
rename -- .gz.tmp '' *.gz.tmp
Za pomocą powyższego polecenia wszystkie pliki z .gz.tmprozszerzeniem w bieżącym folderze zostaną zmienione na filename.gz.
Szczegółowe informacje można znaleźć w artykule: Linux: usuń rozszerzenia plików dla wielu plików .
renamejest niezgodna (i znacznie bardziej ograniczona) od tradycyjnego renamepolecenia z perl.
.oldextw nazwie pliku, niekoniecznie rozszerzenie ( foo.oldextasy.oldextzostanie zmienione na footasy.oldext).
czy możemy to zrobić rekurencyjnie?
for i in *.gz; do mv -i $i `basename $i .gz`; done