mv: kann nicht mit * stat

10

Ich habe das schon einmal versucht. Ich schwöre, ich konnte diese Art von Befehl schon einmal erteilen:

mv /home/user/temp1/* /home/user/temp2

Grundsätzlich habe ich diesen Befehl von hier erhalten: /superuser/273254/move-files-and-folders-recursively-in-linux

Irgendeine Idee, warum es mir sagt

mv: cannot stat `/home/user/temp1/*': No such file or directory
user1012451
quelle

Antworten:

6

Ich kann mir zwei mögliche Gründe vorstellen, warum dies passieren kann:

  1. Das Quellverzeichnis ist möglicherweise nicht vorhanden (ODER)
  2. Das Quellverzeichnis ist möglicherweise leer

Ignorieren, wenn keine!

l0n3sh4rk
quelle
5

Sie müssen $USERfür den Benutzer verwenden, um auf Ihren Benutzernamen zu erweitern. /home/userist nur gültig, wenn Sie einen Benutzer namens haben user. Dies funktioniert, wenn temp1und temp2in Ihrem Home-Verzeichnis vorhanden

mv /home/$USER/temp1/* /home/$USER/temp2
Rinzwind
quelle
3

Ich werde versuchen, die Verwirrung ein wenig zu beseitigen:

  • Wenn Sie einen Ordner und seinen Inhalt in einen anderen verschieben möchten , geben Sie Folgendes ein:

    mv ~/Scripts ~/Podcasts

  • Wenn Sie den Inhalt eines Ordners, aber nicht den Ordner selbst in einen anderen Ordner verschieben möchten , müssen Sie beispielsweise Folgendes eingeben mv ~/Scripts/* ~/Podcasts. Sie können eingeben echo ~/Scripts/*, um den Inhalt des Ordners zu überprüfen

  • (Wenn Sie auch über müssen wissen globstar, was Sie können durch alle Verzeichnisebenen rekursiv finden Sie diesen Artikel und diese ein . Es kann mit shopt -s globstar aktiviert sein, aber das müssen permanent in Bashrc zur Arbeit gebracht werden .)

(Das tilde~ in ~ / Scripts wird /home/mike/von der Shell automatisch auf oder Ihren Benutzernamen erweitert. )

Gemeinschaft
quelle
0

Wenn Sie bash verwenden und das Quellverzeichnis leer ist, können Sie das Standardverhalten der Shell zur Glob-Erweiterung ändern mit:

shopt -s nullglob

um den Nullglob zu aktivieren und nachfolgende Befehle mvzu veranlassen, sich ordnungsgemäß zu verhalten, wenn das Quellverzeichnis leer ist. Beachten Sie, dass dies dazu führen kann, dass sich andere Befehle lsunerwartet verhalten.

Sie können den Nullglob wieder deaktivieren mit:

shopt -u nullglob

Weitere Informationen finden Sie hier und hier .

Gemeinschaft
quelle