各サブディレクトリのすべてのファイル名をそのサブディレクトリのテキストファイルに保存したいので、次のスクリプトを作成しました。
#!/bin/bash
for X in "$PWD" *
do
if [ -d "$X" ];
then
cd "$X"
files="$(ls)"
echo "$files" >> filesNames.txt
fi
done
ただし、以下を使用してサブディレクトリに入ることはできません。
cd "$X"
ここに問題がありますか?
ベストアンサー1
あなたの意見によると、さらに一歩深く入ることができます。この場合、globを使用してディレクトリ名を繰り返し、各ディレクトリの配列にファイルパスを保存してから、各パスの最後の要素を次に印刷できますfileNames.txt
。
#!/bin/sh
for dir in "$PWD"/*/; do
arr=( "$dir"* )
printf %s\\n "${arr[@]##*/}" > "$dir"filesNames.txt
done
シンボリックリンクを除外するには、次の条件を追加するだけです。if [[ ! -L "${dir%?}" ]]; then arr...