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

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!


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

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. )


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 .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.