あなたにすべてを削除するにはbashの中から(Parameter Expansion
を参照するか、単にbash
manページ内の文字列##
を検索)文字列を操作し、最後のスラッシュを含むことができます:あなたに、そう
pax> for i in $HOME/tmp* ; do echo $i ${i##*/} ; done
/home/pax/tmp tmp
/home/pax/tmp1 tmp1
/home/pax/tmp2 tmp2
/home/pax/tmp3 tmp3
/home/pax/tmp4 tmp4
/home/pax/tmp5 tmp5
場合、それはの線に沿って次のようになります。私は現在、あなたが検討しているディレクトリ内のディレクトリとファイルを区別しませんあなたのコードを言及する必要がありますが
for d in /home/* ;do
cd $d
ls *.txt > ${d##*/}_all_txt.list
done
- あなたはを使用することもできますは、ディレクトリのみを検索する、または単純なif [[ -d ${d} ]]
とループの内側にそれを確認する:
for d in /home/* ; do
if [[ -d "${d}" ]] ; then
cd $d
ls *.txt > "${d##*/}_all_txt.list"
fi
done
ありがとうございました。 – Bala