0

次を使用して、スペースのないフォルダーの内容を取得できます。

files=~/Movies/MyFolder/MySubfolder*

ただし、フォルダーの名前にスペースが含まれている場合、次の方法は機能しません。

files=~/Movies/My\ Folder/My\ Subfolder/*

次のようにフォルダの内容をエコーアウトしようとしています:

for f in "$files"
do
    echo "$f"
done

また、パスを引用符で囲んでみました:

files=~/"Movies/My Folder/My Subfolder"/*

お時間をいただきありがとうございます。

4

2 に答える 2

0

配列を使用します。

shopt -s nullglob   # If the folder is empty, don't treat * literally
files=(~/Movies/My\ Folder/My\ Subfolder/*)
for f in "${files[@]}"; do
    echo $f
done

または、デニスが言うように、グロブを直接繰り返します(私は誤って機能しないと思っていました):

shopt -s nullglob
for f in ~/Movies/My\ Folder/My\ Subfolder/*; do
    echo $f
done
于 2012-06-20T12:33:21.730 に答える
0
#Works better, and recursively.
find ~/"Movies/My Folder/My Subfolder" -iname \*jpg | while read f ; do
    echo $f
done
于 2012-06-20T11:43:56.647 に答える