特定のパスには、次のようないくつかのディレクトリ(ファイル名で日付)があります。
- ディレクトリ名が20180423と同じ場合は、リストする必要があります。
- ディレクトリ名が 20180423-backup または 20180423backup と似ている場合は、リストしないでください。
答え1
ここでは二重否定を使いたいです。
LC_ALL=C find . ! -name '*[!0-9]*' -type d
つまり、名前に数字以外の数字が含まれていないディレクトリ・タイプのファイルをリストします。
そうでない場合、LC_ALL=C
いくつfind
かの実装(GNUを含む)は、名前にfind
現在のロケールで有効な文字を形成しないバイト列を含むファイル(répertoire
iso8859-1(mkdir $'r\xe9pertoire'
)エンコードファイルなど)を一覧表示することもあります。
を使用すると、zsh
次の操作も実行できます。
print -rC1 -- **/<->(ND/)
答え2
GNUがある場合は、次を見つけてください。
find . -regex '^./[0-9]*$'
変更された場合は、正規表現の先頭()を^./
開始パス()と一致するように調整してください。.
答え3
2つの解決策:
GNUの使用find
:
find /particular/path -type d -regextype egrep -regex '.*/[0-9]{8}'
標準find
:
find /particular/path -type d -name '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
/particular/path
このコマンドは、8桁の名前で構成されているディレクトリを見つけ、そのパス名を表示します。
これらのディレクトリの内容を見たいと「リスト」と表示する場合-exec ls {} ';'
。