/ / Wie erstelle ich Ordner mit dir $ n? - Bash

Wie erstellt man Ordner mit dir $ n? - Bash

Ich erstelle einen Ordner und kopiere etwas aus dem Downloads Ordner. Mein Problem ist, ich wollte Inhalt des Download-Ordners nicht den Ordner selbst verschieben. Also versuche ich es

n=0
while ! mkdir dir$n
do
n=$((n+1))

find /home/linaro/Downloads 1 -type f -exec mv -t /home/linaro/dir$n

done

Der Fehler kommt so

mkdir: cannot create directory ‘dir0’: File exists
find: ‘/home/linaro/Downloads’: No such file or directory
mv: missing file operand
Try "mv --help" for more information.
mkdir: cannot create directory ‘dir1’: File exists
find: ‘/home/linaro/Downloads’: No such file or directory
mv: missing file operand
Try "mv --help" for more information.
mkdir: cannot create directory ‘dir2’: File exists
find: ‘/home/linaro/Downloads’: No such file or directory
mv: failed to access "/home/linaro/dir3": No such file or directory
linaro@tinkerboard:~$

Der Befehl kann den neu erstellten Ordner (mit dem dynamischen Namen dir $ n) nicht erkennen. Ich habe versucht, den vorherigen Ordner zu erreichen. Aber nichts hat funktioniert. Wie man diese bearbeitet?

Antworten:

0 für die Antwort № 1

Möchten Sie alle Dateien / Verzeichnisse aus dem Downloads-Verzeichnis kopieren? Wenn dies der Fall ist, verwenden Sie den folgenden Code.

DirName=`date "+%Y-%m-%d-%H:%M:%S"`
mkdir $DirName
mv ~/Downloads/* ~/$DirName

0 für die Antwort № 2

Du bist in der Nähe, aber ich bin mir nicht sicher, was 1 folgt dir /home/linaro/Downloads. Es scheint, dass Sie tatsächlich wollen:

find /home/linaro/Downloads -type f -exec mv "{}" /home/linaro/dir$n ;

Während Sie legal schreiben können dir$n, es macht es viel klarer, wenn Sie schreiben wie dir${n},

find /home/linaro/Downloads -type f -exec mv "{}" /home/linaro/dir${n} ;

Probieren Sie es aus und lassen Sie es mich wissen, wenn Sie weitere Fragen haben.