パッケージの仕様ファイルを作成しようとしています。ファイルを一覧表示するには、find
コマンドを使用してファイルにリダイレクトします。
readonly TOPDIR=`pwd`
cd package_folder
find . -iname >>$TOPDIR/list_files
今私の問題は%dir
、すべてのディレクトリにプレフィックスを追加する必要があることです。そうしないと、ファイルが2回リストされるというエラーが発生します。私のファイルの内容は次のとおりです。
$ cat list_files
/bin
/bin/file_a
/bin/my_folder
/bin/my_folder/file_b
私がしたことは、ディレクトリを探しました
for file_name in `cat $TOPDIR/list_files`
do
chk_1=`ls -l $file_name |grep "^d"`
if [ "chk_1" ] ;then
sed -i "s@^$file_name@%dir $file_name@" $TOPDIR/list_files
fi
done
これで、出力ファイル (list_files) は次のようになります。
%dir /bin
%dir /bin/file_a
%dir /bin/my_folder
%dir /bin/my_folder/file_b
理由/bin
はディレクトリなので、に置き換え/bin
ます%dir
。まあ、オプションを与えていないのでちょっと奇妙です@g
が、それでもすべてを置き換えています/bin
。に含める方法はあります"\n"
かsed
?