Automagicznie do określenia, w którym katalogu dane poszedł i jeśli używasz bash, wykonaj następujące czynności: a=( /var/www/vhosts/website/httpdocs/magento/* ); echo "${a[${#a[@]}-1]}". Jeśli nie w bash, to powinno działać: printf '%s\n' /var/www/vhosts/website/httpdocs/magento/* | tail -1. W przeciwnym razie jest bardzo prawdopodobne, że w ostatnim katalogu alfanumerycznie. Gotowe.
gniourf_gniourf
Odpowiedzi:
20
Jeśli alfabetycznie ostatnim wpisem w tym katalogu jest sam katalog, one tam są.
Załóżmy, że masz pliki a, ba ci katalogu d. W tym przypadku,
+1: spójrz pod podkatalogi w katalogu / var / www / vhosts / website / httpdocs / magento / * reż. Wskazówka: subdir nadal znajduje się w katalogu magento, więc powinno być łatwe, ponieważ prawie wszystko inne powinno być teraz pod nim, dlatego powinien zostać tylko jeden katalog (nie licząc tych, które zaczynają się od '.'). Wpisz ten podkatalog i „mv * ..”. Może to jednak spowodować przeniesienie rzeczy, które wcześniej były słusznie w tym katalogu, więc będziesz musiał je odłożyć z powrotem. + każdy plik, który miał taką samą nazwę jak plik magento / *, zostanie zastąpiony przez Benn (jeśli twoje „mv” nie jest aliasowane do „mv -i”)
Olivier Dulac
2
schludna sztuczka z mv *: mkdir zzz; mv *która przeniesie całą zawartość bieżącego katalogu do katalogu zzz. Tylko upewnij się, że nie masz żadnych plików sortujących leksykalnie po Zzz.
2
Aby rozszerzyć odpowiedź glglgl:
Rozszerzanie symboli wieloznacznych wiersza poleceń w systemach operacyjnych typu Unix jest wykonywane przez powłokę. W większości przypadków byłoby to z Linuksem bash. Jego strona podręcznika wyraźnie stwierdza, że rozszerzenie symboli wieloznacznych zostanie posortowane alfabetycznie. To samo powinno dotyczyć większości pocisków kompatybilnych z Bourne.
a=( /var/www/vhosts/website/httpdocs/magento/* ); echo "${a[${#a[@]}-1]}"
. Jeśli nie w bash, to powinno działać:printf '%s\n' /var/www/vhosts/website/httpdocs/magento/* | tail -1
. W przeciwnym razie jest bardzo prawdopodobne, że w ostatnim katalogu alfanumerycznie. Gotowe.Odpowiedzi:
Jeśli alfabetycznie ostatnim wpisem w tym katalogu jest sam katalog, one tam są.
Załóżmy, że masz pliki
a
,b
ac
i katalogud
. W tym przypadku,rozwija się do
który jest poleceniem do przeniesienia wszystkiego
d
. Spójrz tam, jeśli coś jest.Gdyby
d
nie był katalogiem,mv
powinien byłby na to narzekać.źródło
mv *
:mkdir zzz; mv *
która przeniesie całą zawartość bieżącego katalogu do katalogu zzz. Tylko upewnij się, że nie masz żadnych plików sortujących leksykalnie po Zzz.Aby rozszerzyć odpowiedź glglgl:
Rozszerzanie symboli wieloznacznych wiersza poleceń w systemach operacyjnych typu Unix jest wykonywane przez powłokę. W większości przypadków byłoby to z Linuksem
bash
. Jego strona podręcznika wyraźnie stwierdza, że rozszerzenie symboli wieloznacznych zostanie posortowane alfabetycznie. To samo powinno dotyczyć większości pocisków kompatybilnych z Bourne.źródło