私は生涯にわたって私がここで間違っている部分と、なぜ私のgrepがファイルを出力しないのかを理解することはできません。
実際に私が望むのは、この正規表現に一致するすべてのファイルをキャプチャ"\(multidoge\|wallet\)[.]\(dat\|wallet\)"
することです。
ls -l --quote-name /
lrwxrwxrwx 1 root root 7 Dec 30 21:52 "bin" -> "usr/bin"
drwxr-xr-x 4 root root 4096 Feb 13 00:30 "boot"
drwxr-xr-x 2 root root 4096 Dec 30 21:53 "cdrom"
drwxr-xr-x 21 root root 5520 Mar 15 00:34 "dev"
drwxr-xr-x 165 root root 12288 Mar 12 16:13 "etc"
drwxr-xr-x 3 root root 4096 Jan 4 16:07 "home"
lrwxrwxrwx 1 root root 7 Dec 30 21:52 "lib" -> "usr/lib"
lrwxrwxrwx 1 root root 9 Dec 30 21:52 "lib32" -> "usr/lib32"
lrwxrwxrwx 1 root root 9 Dec 30 21:52 "lib64" -> "usr/lib64"
lrwxrwxrwx 1 root root 10 Dec 30 21:52 "libx32" -> "usr/libx32"
drwx------ 2 root root 16384 Dec 30 21:52 "lost+found"
drwxr-xr-x 3 root root 4096 Dec 30 21:57 "media"
drwxr-xr-x 7 root root 4096 Dec 31 16:53 "mnt"
-rw-r--r-- 1 root root 0 Mar 14 23:15 "multidoge.wallet"
drwxr-xr-x 8 root root 4096 Mar 5 17:00 "opt"
dr-xr-xr-x 604 root root 0 Mar 12 14:18 "proc"
drwx------ 12 root root 4096 Mar 14 20:32 "root"
drwxr-xr-x 42 root root 1440 Mar 13 09:58 "run"
lrwxrwxrwx 1 root root 8 Dec 30 21:52 "sbin" -> "usr/sbin"
drwxr-xr-x 6 root root 4096 Jan 13 10:21 "snap"
drwxr-xr-x 2 root root 4096 Dec 13 12:23 "srv"
-rw------- 1 root root 15032385536 Jan 4 15:24 "swapfile"
dr-xr-xr-x 13 root root 0 Mar 12 14:18 "sys"
drwxrwxrwt 34 root root 24576 Mar 15 00:40 "tmp"
-rw-r--r-- 1 root root 8 Dec 31 10:29 "tmpjcef-p79454_scheme.tmp"
drwxr-xr-x 14 root root 4096 Dec 13 12:23 "usr"
drwxr-xr-x 13 root root 4096 Jan 13 10:18 "var"
-rw-r--r-- 1 root root 0 Mar 14 23:15 "wallet.dat"
hutber@hutber:/$ sudo find / -print | grep -i "multidoge.wallet"
hutber@hutber:/$ sudo find / -print | grep -i "wallet.dat"
/wallet.dat
編集する
find
戻りファイルはありませんが、grep
-maxlength 1を使用している場合のみ:
hutber@hutber:/$ sudo find / -name "*wallet*"
/wallet.dat
/media/hutber/E036A40336A3D934/cygwin64/bin/kwallet-query.exe
/media/hutber/E036A40336A3D934/cygwin64/bin/cygkwalletbackend-1.dll
/media/hutber/E036A40336A3D934/cygwin64/bin/cygkwalletbackend5-5.dll
/media/hutber/E036A40336A3D934/cygwin64/bin/cygkwalletclient-1.dll
^C
hutber@hutber:/$ find / -maxdepth 1 -name "*wallet*"
/wallet.dat
/multidoge.wallet
答え1
コメントから質問までfind
、ユーザーが緊張してからしばらくしてからコマンドを中断したようです。
彼らと一緒に使用すると、望むfind
結果が得られることがわかりました-maxdepth 1
。これは驚くべきことではありませんでした。徹底的に/
最上位の検索パスとして使用する場合、検索ツリーのサイズを小さくします。
したがって、いくつかの忍耐力を追加したり、検索パスを選択したり、サブツリーを選択したりするためにもう少し選択的にアクセスすると、コマンドから出力を取得できないという問題を解決できます/
。
2番目の問題は、ファイル名を特定の正規表現と一致させることです。
\(multidoge\|wallet\)[.]\(dat\|wallet\)
これをファイルのフルパスに一致するPOSIX拡張正規表現で書き直すと、次のような結果が得られます。
.*/(multidoge|wallet)\.(dat|wallet)
find
次のようにGNUに接続できます。
find / -regextype posix-extended -regex '.*/(multidoge|wallet)\.(dat|wallet)'