どうすればいいのかわかりにくいです./
。
Linux Essentialsの本から-file
。rm ./-file
答え1
この.
ディレクトリは現在のディレクトリです。このディレクトリは、..
このディレクトリの親ディレクトリです。
$ pwd
/home/user
$ cd docs; pwd # change to directory 'docs'
/home/user/docs
$ cd . ; pwd # we change to the '.' directory, therefore we'll stay. No change
/home/user/docs
$ cd .. ; pwd # back to up level
/home/user
Linuxでは、コマンドオプションがシンボルとして導入されます-
。つまり、etc.で始まるファイルをls -l
参照したい場合、コマンドはオプションを指定しようとしていると思います。たとえば、削除したい場合:-
-file
rm -file
file
コマンドのオプションを使用しようとしているので文句を言いますrm
。この場合、ファイルの場所を表示する必要があります。現在のディレクトリ(ディレクトリなど)でファイルを.
として参照する必要があります./-file
。つまり、ディレクトリ内の.
ファイルが-file
。この場合、コマンドはrm
それをオプションと見なしません。
rm ./-file
を使って行うこともできます--
。
からman rm
:
名前が「-」で始まるファイル(「-foo」など)を削除するには、次のいずれかのコマンドを使用します。
rm -- -foo rm ./-foo
答え2
ピリオド文字は.
現在のディレクトリです。たとえば、およびはls
同義語ls .
です。あなたが/etc
命令を受けている場合はcat /etc/fstab/
、同じことをcat ./fstab
してください。cat fstab
rm ./-file
ファイル名ではなくコマンドラインオプションで始まるすべての項目が解析されるためrm
に使用されます。-
たとえば、名前の付いたls -l
ファイルを表示する試みはありませんが、これは行われます。-l
ls ./-l
ls /some/directory/-l
答え3
入力すると、nameの代わりrm -file
にコマンドラインオプションが渡されます。rm
-file
削除するには、名前を引用符で-file
囲むか、エスケープします。 Bashまたはzshでコマンドが正しいファイル名を取得するかどうかわからない場合は、タブ補完を使用してください。例:画面が印刷されない場合は、何かが間違っていることを知り、Enterキーを押す前に修正し、他の例を印刷する必要があります。rm
rm "-file"
-
rm \\-file
type rm -fi
TABrm -file
rm "-fi
TABrm "-file"
の場合、ディレクトリとファイル名の間の区切り文字のみを使用します./
。/
「.」は現在のディレクトリを示します。 「..」は親ディレクトリを意味します。したがって、foo
現在のディレクトリからファイルを削除するにはrm ./foo
(rm foo
この方法も機能します)と入力します。以前のディレクトリからファイルを削除するには、rm ../foo
上のディレクトリに含まれているディレクトリから削除するファイルを入力します。bar
rm ../bar/foo
この場合、キャラクターが最初に見えないように前方./
に配置すると、特定のオプションを使用していると勘違いすることになります。-file
-
rm
DOSについて少し知っておくとDOSにrm -file
当てはまりますrm /file
。