Ich möchte in der Lage sein, den Inhalt eines Verzeichnisses innerhalb eines Arrays zu speichern. Ich weiß, dass Sie verwenden können:So speichern Sie den Inhalt eines Verzeichnisses innerhalb eines Arrays
#!/bin/bash
declare -A array
for i in Directory; do
array[$i]=$i
done
, um Verzeichnisinhalte in einem assoziativen Array zu speichern. Aber wenn es Unterverzeichnisse innerhalb eines Verzeichnisses gibt, möchte ich in der Lage sein, sie und ihren Inhalt innerhalb desselben Arrays zu speichern. Ich habe auch versucht mit:
declare -A arr1
find Directory -print0 | while read -d $'\0' file; do
arr1[$file]=$file
echo "${arr1[$file]}"
done
aber das läuft nur in das Problem, bei dem der Inhalt des Arrays verschwinden, sobald die while-Schleife durch Enden der Subshell aus der Pipeline verworfen (nicht sicher, ob ich beschreibe dies richtig).
Ich habe sogar versucht, die folgenden:
for i in $(find Directory/*); do
arr2[$i]="$i"
echo $i
done
aber die Ausgabe ist eine totale Katastrophe für Dateien keine Leerzeichen enthält.
Wie kann ich sowohl ein Verzeichnis als auch alle Unterverzeichnisse (und ggf. deren Unterverzeichnisse) in einem einzigen Array speichern?
Sie können in Betracht ziehen, diesen Beitrag zu erkunden - http://stackoverflow.com/questions/11584029/how-can-i-store-a-list-of-directories-in-an-array –
Siehe http: // mywiki .wooledge.org/BashGuide/Arrays – andlrc
Was möchten Sie archivieren? Warum brauchen Sie ein Array? – andlrc