フォルダ内のすべてのファイルを印刷する

フォルダ内のすべてのファイルを印刷する

lsreturnを仮定するとfile1 file2 dir1 dire2 ...印刷したいと思いますyou have file1 file2 dir1 dire2 ... in currnent folder

どうすればいいですか? ls | xargs -i echo 'you have {} in current folder'印刷

現在のフォルダにfile1があります
現在のフォルダにfile2があります
現在のフォルダにdir1があります
現在のフォルダにdir2があります
現在のフォルダにxxxがあります

また試してみましたが、うまく ls |xargs printf 'you have %s %s %s %s in current folder' いきませんでした。ファイル数が定義されていないためです。printfこの場合、正しい構文は何ですか?

ls | xargs printf 'you have $@ in current folder'私が得ることができる最も近いものですが、動作しません。

ベストアンサー1

以下は機能しますが、セキュリティに悪影響を及ぼす可能性があります。

echo "You have" * "in current folder"

IMOはより良いアプローチですが、次の2行が必要です。

files=(*)
echo "You have ${files[@]} in curent folder"

printfを使用してください:

files=(*)
printf '%s ' "You have ${files[@]} in current folder"

おすすめ記事