私は仕事をしていたので、特定のファイルをフォルダに入れる必要がありました。 私は ls -lrt *ABCD*201604*
とタイプし、 *ABCD*201604* not found
を返しました。Unixコマンドls -lrtが予期せぬ結果を出す
次に、そのようなファイルが実際に存在するかどうかを確認するために、私はls -lrt
を実行し、そのようなファイルがあることを発見しました。
次に、コマンドls -lrt *ABCD*201604*
を入力している間に、リストされたファイルからABCD
と201604
をコピーしました。
私は両方のコマンドを比較して間違いがないかどうかを確認しましたが、どちらも同じであることがわかりました。そのような行動の説明はありますか?私が書いた
ワン:
$ ls -lrt *RFPTDW*20160425*
RFPTDW107_01_01_20160425_1526.txt
RFPTDW059_01_01_20160425_1527.txt
を第二の出力では、私は他の詳細が、ファイル名を省略している:私はコピー
$ ls -lrt *RFPTDW*20160425*
*RFPTDW*20160425* not found
一つ。
'* abcd * 201604 *'は 'abcd'の後に' 201604'が続くファイルとマッチします。 ACROSSファイル名と一致しません。両方の文字列パターンをその順に持つ単一のファイルのみを検索します。例えば'201604abcd.txt'はマッチしませんし、' abcd.txt'や '201604.txt'でも' abcdfoobar201604bazqux.txt'は –
と表示されます。あなたの脚本で失われているような微妙なものかもしれません。( 'ls -lrt * ABCD * 201604 *'と '* ABCD * 20160425 * not found 'と表示されているのは、余分な' 25'のために正しくないと言われていることに気がついています。これ。) –
@ジョンクーゲルマン、ごめんなさい。それは単にイラストレーションのためだった。私は正確なコマンドと出力を追加します。 –