Ich habe einen Ordner, der mehrere Ordner mit ISOs in jedem hat. Einige Namen der Dateien und Ordner enthalten Leerzeichen. Hier ist ein Beispiel für eine Ordnerstruktur:
/ISOs
-CentOS
--Centos6
---Centos6_x64.iso
---Centos6_x86.iso
-Windows_10_Pro
--Windows_10_Pro.iso
-Windows 10 Enterprise
--Windows 10 Enterprise.iso
Befehle versucht:
find /mnt/fs1/Shares/Software$/ISOs/ -name \*.iso | xargs ln -sf /mnt/fs2/Shares/Images$/proxmox/template/iso
und
for file in "$(find /mnt/fs1/Shares/Software$/ISOs/ -name \*.iso)"; do ln -sf /mnt/fs2/Shares/Images$/server/template/iso/$file;
Mit den oben genannten Befehlen werden Verknüpfungen zu den Dateien erstellt, wobei jedoch alles ausgelassen wird, das ein Leerzeichen im Namen des Ordners / Unterordners oder im Namen der Datei enthält:
/iso
-Centos6_x64.iso
-Centos6_x86.iso
-Windows_10_Pro.iso
Was ist der beste Weg für mich, um alle in diesem Ordner enthaltenen Dateien aufzulisten?
linux
file-management
Sektorjunkie
quelle
quelle
\$
,$sign
die in doppelte Anführungszeichen eingeschlossen werden sollten"$sign"
.Antworten:
Wenn Strings Leerzeichen enthalten, interpretiert die Shell diese als separate Befehle. Sie müssen den Pfad in Anführungszeichen setzen, damit die Shell weiß, dass es sich um eine einzelne Einheit handelt.
Ich habe einen ähnlichen Befehl auf meinem System ausprobiert, und ein einfacherer Weg wäre, dies zu tun
quelle