ls ~
RHEL 7を使用していますが、出力<F6>q
が表示されます!どういう意味ですか?
[user@server2 ~]$ ls /home/user/
<F6>q
[user@server2 ~]$ ll
total 4
-rw-r--r--. 1 root root 340 Sep 18 17:16 <F6>q
[user@server2 ~]$ cat <F6>q
-bash: F6: No such file or directory
[user@server2 ~]$ touch test
[user@server2 ~]$ ls
<F6>q test
[user@server2 ~]$ vim <F6>q
-bash: F6: No such file or directory
[user@server2 ~]$
答え1
つまり、ファイル名は<F6>q
。
これらはすべていいえコメント 回答やその他の実際の回答でわかるように表示できない文字です。目の前に展示されているものをご覧いただけます。 ☺
いずれにしても表示できない文字については、フォームは発行されません<F6>
。ls
[User@server2 ~]$ cat <F6>q -bash: F6: そのファイルやディレクトリはありません。 [User@Server2 ~]$ vim <F6>q -bash: F6: そのファイルやディレクトリはありません。 [ユーザー@サーバー2〜]$
シェル構文を知る必要があります。
実際のコマンドパラメータなしでファイルから標準入力がリダイレクトされ、標準出力がファイルにリダイレクトされ、cat
コマンドが実行されています。以前のリダイレクトはという名前のファイルがないため失敗します。代わりにファイル名があるため、後者のリダイレクトはまったく試行されません。vim
F6
q
F6
<F6>q
以下は、シェルがどのように解析するかを示す空白を持つ同じコマンドです。
[user@server2 ~]$ cat < F6 > q -bash: F6: そのファイルやディレクトリはありません。 [User@Server2 ~]$ vim < F6 > q -bash: F6: そのファイルやディレクトリはありません。 [ユーザー@サーバー2〜]$
シェルメタ文字を含むファイル名をそのままコマンドに渡すには、シェルはメタ文字に応答せずに次のようになります。先頭:
vim '<F6>q'または脱出する:
vim \<F6\>q
コマンド入力モードでファンクションキーを押すとVIMで発生する状況を考慮すると、ex
VIMを使用して誤ってそのような名前のファイルを生成するのは簡単です。
答え2
RHEL 7は一般ls
(またはエイリアスll
)を使用し、出力が端末に送信されたときにls
制御文字やその他の印刷できない文字を表示可能な形式に変換します。これがあなたが見ているものである可能性が最も高いです。出力が端末以外の場所で行われる場合、このデフォルトの置換は発生しません。
ls -q
疑問符を使用して印刷できない文字を置き換えることができます。疑問符は単一文字に適したシェルワイルドカードなので、実行して応答を見ると、ls -q /home/user/
ミステリー?q
ファイルに最初の文字がASCII値0xF6の印刷できない文字がある可能性があります。
これを使用して、Cスタイルのエスケープコードで表示される印刷できない文字を取得することもできますls -b
。このコードは、シェルで直接使用できないが印刷できない各文字を正確に識別します。
ファイル名をより管理しやすい名前に変更することもできます。
cd /home/user
mv ?q possible-typo
vi
としてコマンドを誤って入力することで:wq
生成されることがあります:w<extra character>q
。コマンドの後者の形式は、<extra character>q
「既存の名前で保存してから終了」ではなく、「現在のファイルを名前で保存」として解釈されます。