.hiddenファイルのオプション?

.hiddenファイルのオプション?

この.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

答え2

Amazedの答えに基づいて、必要なタスクを実行するシェルコマンドを作成しました。

for i in *.out; do echo "$i"; done > .hidden

これはうまくいくようです。選択したディレクトリのすべてのサブディレクトリにシェルコマンドを適用することは可能ですか? (実際にこれは別の質問かもしれません)

答え3

新しい答え:私が思ったのとは違う意味で言われたようです。 Nautilus File Managerがデフォルトで非表示にするすべてのファイルを一覧表示するテキストファイルを生成すると、.hidden次のコマンドを使用できます(@Jóhannの回答から):

for i in *.out; do echo "$i"; done > .hidden

.out非表示にするファイル拡張子に置き換えます。

前の答え:

関連するすべてのファイルが同じ拡張子を共有し、他のファイルが同じ拡張子を共有しない場合は、単純なシェルコマンドを使用できます。たとえば、*.outファイルの場合:

for i in ./*.out; do mv "$i" ./."${i#./}"; done

このコマンドは、現在のディレクトリの* .outに一致するすべてのファイルを次のディレクトリに移動します。.<name>.out

関連情報