私は特定のディレクトリでこの状況にあります:
$ ls -al
...
drwxr-xr-x 2 me users 8192 Juni 28 15:27 tmp
-rw-r--r-- 1 me users 439 Jan. 3 2013
...
ファイル名がないように見える2番目のエントリにアクセスするにはどうすればよいですか?
「nonbreakingspace」という名前のファイルを作成し、名前を変更するためのサンプル実行:
$ ls -1 # Each file on a separate row
testfile
$ touch # I'm actually writing the character u00a0 here
$ ls -1
testfile
$ ls -i # Print inodes
2031842 testfile
2023653
$ find . -maxdepth 1 -inum 2023653 -exec mv {} hithere \;
$ ls -i1
2023653 hithere
2031842 testfile
その形式のexec
は、一致するものが1つしかない場合にのみ意味がありますが、同じファイルへのハードリンクが存在しない限り、iノード番号はそのパーティションで一意である必要があります。最初に引数なしでfindを実行して、複数の一致が得られるかどうかを確認することで、これをテストできます。その場合は、たとえば必要なファイルのみに一致するようにfind
パターンを調整します。
名前の変更はファイル名の正確な文字に依存しないため、奇妙なコードポイントを入力しても問題はありません。
「ls-1a>/tmp/list」とhexdumpを試して、何かが発生するかどうかを確認します。ファイル名がスペースとタブのシーケンスである可能性があります。 hexdumpがファイル名をスペース(たとえば1スペース)として表示する場合は、「mv\somename」を実行します
ls -1 ls -1> /tmp/list cat/tmp/list hexdump/tmp /リスト 00 01 02 03 04 05 06 07-08 09 0A 0B 0C 0D 0E 0F 0123456789ABCDEF 00000000 20 0A {------。 mv\new {------ ls -1 new