Ok, mam kilka plików zaczynających się od myślnika, -. Co nie jest tak dobre ... i chcę je zmienić. W moim szczególnym przypadku chciałbym po prostu postawić przed nimi postać.
Znalazłem następujący wiersz, który powinien działać, ale z tego powodu myślnik nie działa:
for file in -N*.ext; do mv $file x$file; done
Jeśli postawię echo
przed mv
, dostanę kilka
mv -N1.ext x-f1.ext
mv -N2.ext x-f2.ext
Co jest poprawne, z tą różnicą, że pierwsza nazwa pliku to opcje. Więc kiedy usuwam echo
i uruchamiam, po prostu dostaję kilka
mv: illegal option -- N
Próbowałem to zmienić na
for file in -N*.ext; do mv "$file" "x$file"; done
ale wydaje się, że cytaty są po prostu ignorowane. Próbowałem użyć pojedynczych cudzysłowów, ale zmienna nie została rozwinięta ... Co mam tutaj zrobić?
Aktualizacja: próbowałem teraz zacytować cytaty. Lubię to:
for file in -N*.ext; do mv '"'$file'"' '"'x$file'"'; done
A kiedy to powtarzam, wygląda to poprawnie, ale kiedy faktycznie go uruchamiam, po prostu dostaję
mv: rename "-N1.ext" to "x-n1.ext":: No such file or directory
Nie mam pojęcia, jak to zrobić teraz ... westchnienie