名前がスペースでのみ構成されているディレクトリを移動するには?
ls -lah
drwx------ 4 user1 user1 8.0K Mar 13 14:16 .
drwxr-xr-x 3 root root 60 Mar 13 13:48 ..
drwx------ 18 user1 user1 4.0K Mar 13 11:18
これはウイルスの仕事なので元に戻したいです。
修正する:そのキャラが何なのかよく分からない。宇宙のように動かそうとしないでください。
$mv ' ' test
mv: cannot stat ` ': No such file or directory
修正する:これは重複ではありません名前のないファイルの削除、この場合、ディレクトリとファイルは非常に似て動作します。
答え1
1つの可能なアプローチは、ディレクトリのinode番号を見つけてmv
そのディレクトリに使用することです。どのプラットフォームを使用しているか教えてくれなかったので、利用可能なツールに合わせてこれらの提案を変更する必要があるかもしれません(私はFreeBSDを使用しています)。
ユーティリティを使用してls
inode番号を取得します。-i
スイッチはFreeBSDでこれを行います。
$ ls -i
106739 test
(test
このソリューションを説明するために作成したばかりの空のディレクトリです。)
これで、このfind
ユーティリティを使用して、inode番号を持つディレクトリを見つけることができます。
$ find . -inum 106739
./test
そして問題のあるディレクトリに移動します。
$ find . -inum 106739 -exec mv {} fixed \;
find: ./test: No such file or directory
エラーメッセージを心配しないでください。これは、コマンドの実行中にディレクトリインデックスが変更されたために発生するため、find
ディレクトリ名が次のように変更され、やや混乱しますfixed
。
$ find . -inum 106739
./fixed
前述のように、正しいスイッチを入手するにはローカルのマニュアルを参照する必要があるかもしれませんが、このアプローチは効果的です。
答え2
あなたはそれを使用することができます:
mv ' ' <where you want to move>
答え3
次の方法で名前を把握する必要があります。
ls | od -c
もう一度試してみてくださいmv ? somewhere
(名前が1文字の場合)、mv ?? somewhere
(2文字がある場合)...上記のod(1)
コマンドは、長さを話すか、ls -b
出力で知っておく必要があります。
名前が実際に「」(空白)であればmv ' ' somewhere
大丈夫です。
答え4
空白文字が解析されないようにするには、ドル記号を使用します。
mv $' ' /path/to/folder
それ以外の場合はパラメータとして処理されません。