mv: nie można stat z *


Odpowiedzi:


7

Mogę wymyślić 2 możliwe powody, dla których tak się dzieje:

  1. Katalog źródłowy może nie istnieć (LUB)
  2. Katalog źródłowy może być pusty

Zignoruj, jeśli żaden!


5

Musisz użyć $USERdla użytkownika, aby rozwinąć do swojej nazwy użytkownika. /home/userjest ważny tylko, jeśli masz nazwę użytkownika user. Działa to, jeśli temp1i temp2istnieje w twoim katalogu domowym

mv /home/$USER/temp1/* /home/$USER/temp2

3

Postaram się trochę pomóc i usunąć zamieszanie:

  • Jeśli chcesz przenieść folder i jego zawartość do innego, wpisz:

    mv ~/Scripts ~/Podcasts

  • Jeśli chcesz przenieść zawartość folderu, ale nie sam folder do innego folderu, musisz wprowadzić na przykład mv ~/Scripts/* ~/Podcasts. Możesz wejść, echo ~/Scripts/*aby sprawdzić zawartość folderu

  • (Jeśli potrzebujesz również wiedzieć o tym globstar, co pozwoli ci na ponowne przechodzenie przez wszystkie poziomy katalogów, zobacz ten artykuł i ten . Można go włączyć za pomocą shopst -s globstar, ale trzeba go umieścić w .bashrc, aby działał na stałe .)

( tildeSkrypty ~ in ~ / Scripts są rozwijane do /home/mike/powłoki lub nazwa użytkownika automatycznie przez powłokę)


0

Jeśli używasz bash, a katalog źródłowy jest pusty, możesz zmodyfikować domyślne zachowanie globalnej ekspansji powłoki za pomocą:

shopt -s nullglob

aby włączyć nullglob i spowodować, że kolejne polecenia, takie jak, mvzachowują się poprawnie, gdy katalog źródłowy jest pusty. Uwaga: może to powodować inne polecenia, takie jakls będą zachowywać się nieoczekiwanie.

Możesz ponownie wyłączyć nullglob za pomocą:

shopt -u nullglob

Aby uzyskać więcej informacji, spójrz tutaj i tutaj .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.