タグ付けされた質問 「wildcards」

グロッビングとは、ワイルドカードを含む名前パターンでファイルを照合することを意味します。


4
globマッチから1つのパターンを除外する
同じベースファイル名を持つ複数のファイルがあります。1つを除くすべてを削除したい foo.org #keep foo.tex #delete foo.fls #delete foo.bib #delete etc 保持する必要がなければ、を使用できることを知っていますrm foo.*。 TLDPは^、一致を否定することを示します。試行錯誤を通して、私はそれを見つけることができました rm foo.*[^org] 私は必要なことをしますが、私は本当に構文を理解していません。 また、私のユースケースの制限ではありませんが、このパターンはfoo.oand も無視すると思いますfoo.or。どのように、どのような無視はグロブこのパターンの仕事でしょうないことだけ foo.orgのように見えますか?
54 bash  wildcards 

4
Bash star *ワイルドカードは常に(昇順の)ソートされたリストを生成しますか?
私は、logXXXXが次のような2文字のゼロ詰めされた大文字の16進数であるような名前のファイルで満たされたディレクトリを持っています: log00 log01 log02 ... log0A log0B log0C ... log4E log4F log50 ... 一般に、合計で20または30個未満のファイルがあります。特定のシステムの日付と時刻は信頼できるものではありません(信頼できるNTPまたはGPS時刻ソースのない組み込みシステム)。ただし、上記のようにファイル名は確実に増加します。 私がしたいgrep、私は期待していた特定のタイプの単一の最新のログエントリのすべてのファイルを介しcatなど一緒にファイル... cat /tmp/logs/log* | grep 'WARNING 07 -' | tail -n1 しかし、bashor shまたはor zshなどの異なるバージョンが、どのように*展開されるかについて異なるアイデアを持っているかもしれないということが私には思いつきました。 このman bashページは、の拡張*が一致するファイル名のアルファベット順の完全に昇順のリストであるかどうかを示していません。利用可能なすべてのシステムで試してみるたびに上昇しているように見えますが、動作は定義済みですか、それとも実装固有ですか? 言い換えればcat /tmp/logs/log*、すべてのログファイルをアルファベット順に連結することに絶対に頼ることができますか?
53 bash  shell  wildcards 

1
「rm。*」は親ディレクトリを削除しますか?
式.*はbashによって展開され、現在のディレクトリと親ディレクトリが含まれます。 $ ls -la total 2600 drwxrwxrwx 2 terdon terdon 2162688 Sep 10 16:22 . drwxr-xr-x 142 terdon terdon 491520 Sep 10 15:34 .. -rw-r--r-- 1 terdon terdon 0 Sep 10 16:22 foo $ echo .* . .. rm -rf .*GNU bashを使用してDebianで実行している場合version 4.2.36(1)-release、rmからrm (GNU coreutils) 8.13このメッセージが表示されます。 $ rm -rf .* …
53 shell  wildcards  rm  posix 

3
シェルワイルドカードでORパターンを使用する
私のディレクトリの内容は $ ls -lrt total 0 -rw-r--r-- 1 user1 admin 19 Oct 8 12:31 night.txt -rw-r--r-- 1 user1 admin 19 Oct 8 12:31 noon.txt -rw-r--r-- 1 user1 admin 38 Oct 8 12:31 day.txt 指定したファイル名に単語が含まれているファイルの詳細を一覧表示したいと思います。 例: $ ls -lrt *day|night* ls: *day: No such file or directory bash: night.txt: command not …
52 bash  shell  zsh  ls  wildcards 

5
ディレクトリ内からすべてのサブディレクトリを削除するにはどうすればよいですか?
この質問は、私がここに投稿した最初の質問の第2段階です サブディレクトリ、.zipファイル、およびサブディレクトリ内に含まれていないその他のランダムファイルの束を含むディレクトリがあります。 コマンドラインスクリプトを使用して、親ディレクトリ内のすべてのサブディレクトリを削除しますが、サブディレクトリに属さないすべてのzipファイルとルーズファイルを保持します。すべてのサブディレクトリにはコンテンツがあるため、-fコマンドで強制的に削除する必要があると思います。 したがって、基本的には、親ディレクトリ(または現在のディレクトリ)内を検索し、その中からすべてのフォルダーを削除しますが、フォルダーではない、またはフォルダーに含まれる他のすべてのコンテンツおよびファイルは保持します。 コマンドラインからアイテムを削除するには特別な注意が必要であることは理解していますが、リモートでバックアップするために必要な予防措置をすべて講じています。

5
ワイルドカードでディレクトリを再帰的に削除するにはどうすればよいですか?
WD My Book World EditionでSSHを使用しています。基本的に、特定のディレクトリレベルから開始し、一致するすべてのサブディレクトリを再帰的に削除します.Apple*。それについてどうすればいいですか? 私は試した rm -rf .Apple* そして rm -fR .Apple* サブディレクトリ内のその名前に一致する削除されたディレクトリもありません。


7
ls -dもファイルをリストするのはなぜですか?
指定するときは、次でls --directory a*始まるディレクトリのみをリストする必要がありますa* ただし、次で始まるファイルとディレクトリをリストします a 質問: どこ私は以外に、この上でいくつかのドキュメントを見つけるかもしれないmanし、info私が思うところ、私は徹底的に見えましたか? これはBASHでのみ動作しますか?
48 bash  shell  ls  wildcards  options 


1
拡張子のないファイルを見つける
私が持っているとしましょう: foo.txt bar baz.ooo 使用すると、出力ls -1 !(*.*)のみが取得さbarれます。素晴らしい、今はfindで同じ結果を得たい- find -regex仕事をする人もいます。 注意: find -name !(*.*)!(*.*)それはまだ私が使用できないBashのグロブであるので、答えではありません。
43 bash  shell  find  wildcards 

5
特別なターゲットを持つすべてのシンボリックリンクを削除するにはどうすればよいですか?
コマンドを使って: ls -la * すべてのシンボリックリンクを一覧表示できます。 特別なフォルダーにリンクされているすべてのシンボリックリンクを削除するにはどうすればよいですか? 例えば: 私のディレクトリusr/local/binには、次のエントリがあります。 lrwxrwxrwx 1 root root 50 Apr 22 14:52 allneeded -> /usr/local/texlive/2011/bin/x86_64-linux/allneeded lrwxrwxrwx 1 root root 47 Apr 22 14:52 amstex -> /usr/local/texlive/2011/bin/x86_64-linux/amstex lrwxrwxrwx 1 root root 24 Apr 23 19:09 arara -> /home/marco/.arara/arara 今、私はパスを持つすべてのリンクを削除したい /usr/local/texlive/
43 wildcards  symlink  rm 


7
[AZ]がbashの小文字と一致するのはなぜですか?
私が知っているすべてのシェルrm [A-Z]*で、大文字で始まるすべてのファイルを削除しますが、bashでは、これは文字で始まるすべてのファイルを削除します。 この問題は、bash-3およびbash-4を使用するLinuxおよびSolarisに存在するため、libcのバグのあるパターンマッチャーや、誤って設定されたロケール定義が原因のバグではありません。 これは奇妙で危険な動作を意図したものですか、それとも長年にわたって修正されていない単なるバグですか?
42 bash  shell  wildcards  locale 

7
複数のファイルをワイルドカードでコピーするにはどうすればよいですか?
ABC。*に多数のファイルを含むフォルダーがあります(このようなファイルは約100個あります)。それらをすべてDEF。*で始まる名前の新しいファイルに複製したい だから、私は欲しい ABC.Page1 ABC.Page2 ABC.Topic12 ...etc にコピーされました DEF.Page1 DEF.Page2 DEF.Topic12 ...etc バッチコマンド(BASHなど)でこれを行う最も簡単な方法は何ですか?私はsed、awk、またはxargsを含むものを考えていますが、構文を理解するのが困難です。Pythonスクリプトを書くことはできますが、おそらくあまり複雑ではないコマンドラインソリューションがあると考えています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.