この.hidden
ファイルにはどのようなオプションがありますか?フォルダ内の特定のファイル形式を非表示にしたいのですが、それを置く*.out
と、終わるすべてのファイルが非表示になると思いましたが、うまく.out
いきません。 :(
ノーチラスを使用しています。
更新:このオプションがなければ、ディレクトリで実行されたときに一致する終わりを持つすべてのファイルを見つけて、ファイルに書き込むbashシェルを作成することができると思いました.hidden
。私はコマンドラインの経験がありませんが、試してみましょう:)。
ベストアンサー1
楽しみにしてJohnの答えを少し改善します。このコマンドは、ファイル全体を上書きせず、代わりにファイル名がすでにファイルに存在することを確認していない場合は.hidden
追加します。
for i in *.out; do grep -qxF "$i" tout || echo $i; done
より一般的なスクリプトが必要な場合は、次のようにします。
#!/bin/bash -e
if [ $# -gt 3 ]; then
echo "Usage: $0 [directory [extension [listfile]]]"
echo 'Defaults to "." ".out" ".hidden"'
exit 1
fi
# Apply defaults.
dir=${1:-.}
ext=${2:-.out}
listf=${3:-.hidden}
# Construct the list file.
list="$dir/$listf"
# Make sure the list file exists or the first `grep` will print an error.
[ -f "$list" ] || touch "$list"
# Glob all the files
for filename in "$dir"/*"$ext"; do
# Check whether the list contains the file name
if ! grep -qxF "$filename" "$list"; then
# If not, add it.
echo "$filename" >>"$list"
fi
done