To trochę kłopotliwe pytanie, ale muszę przyznać, że tak późno w mojej karierze wciąż mam pytania dotyczące polecenia mv.
Często mam ten problem: muszę rekursywnie przenosić wszystkie pliki o jeden poziom wyżej. Powiedzmy, że mam folder foo i pasek folderów w nim. Pasek zawiera bałagan plików i folderów, w tym plików i folderów kropkowych. Jak przenieść wszystko na pasku do poziomu Foo?
Jeśli foo jest puste, po prostu przesuwam pasek o jeden poziom wyżej, usuwam foo i zmieniam nazwę paska na foo. Częściowym problemem jest to, że nie mogę zrozumieć, co to jest symbol wieloznaczny mv dla „wszystkiego łącznie z kropkami”. Częścią tego pytania jest to - czy jest dogłębna dyskusja na temat symboli wieloznacznych, które gdzieś używają poleceń cp i mv (przeglądanie to przynosi tylko bardzo podstawowe samouczki).
źródło
To eliminate the error caused by also matching "." and "..", use this command: mv bar/{,.[!.],..?}* .
Najłatwiej to zrobić za pomocą dwóch poleceń, ponieważ * nie pasuje. Cokolwiek
Nie chcesz używać paska /.*, którego dowiedziałem się podczas popełnienia tego błędu:
To jest ZŁA RZECZ. Czy ktoś chce zgadnąć, dlaczego? ;-)
źródło
.*
do.
i..
. Zsh przynajmniej nie dla mnie.Pierwszą rzeczą, którą należy wiedzieć o globowaniu - jest wykonywana przez powłokę, a nie polecenie. Sprawdź stronę podręcznika swojej powłoki, aby poznać wszystkie szczegóły.
źródło
Ten pobiera wszystkie pliki z podfolderów i przenosi je do bieżącego katalogu
Jeśli chcesz posiadać pliki o tej samej nazwie, użyj
źródło
mv .??* *
zajmie się wszystkim oprócz kropki i pojedynczego znaku. Jeśli jest to typowe w Twojej sytuacji, możesz dodać.[a-zA-Z0-9]*
. Że będzie nadal pozostawiają pliki o nazwach takich jak.;
,.^
i.^I
(TAB). Jeśli musisz obsłużyć wszystko, musisz być nieco bardziej złożony.źródło
Jeśli masz strukturę katalogów
/foo/bar/
i chcesz przenieść wszystkie pliki w ramachbar
jednego kroku powyżej, przejdź dobar
katalogu i wpisz następujące polecenie:Generalnie myślę, że
cpio(1)
lepiej nadaje się do tego rodzaju zadań. Możesz sprawdzić szczegółową dokumentację, wydającinfo cpio
w swojej powłoce.źródło