Sambaマウントで奇妙な名前でファイルの名前を変更する


10

変な名前のファイルの名前を適切な名前に変更したいのですが、次のことはできません:/

$ mv *_000c.jpg 000c.jpg
mv: cannot move '?j?Z?R?C1_000c.jpg' to '000c.jpg': No such file or directory

インターネット上のいくつかの場所で推奨されていたように、iノード番号を使用してみました。

$ ls -il *000c.jpg
ls: '?j?Z?R?C1_000c.jpg': No such file or directory
213915 -rw-r--r-- 1 wolf wolf 794655 Jul 21  2012 '?j?Z?R?C1_000c.jpg'
$ find . -inum 213915 -print0 | xargs -0 -I '{}' mv '{}' 000c.jpg
mv: cannot move './?j?Z?R?C1_000c.jpg' to '000c.jpg': No such file or directory

私は何をすべきか?


1
lsそのディレクトリでの単純な出力は何ですか?ファイルは通常のファイルとして表示されますか?これがNo such file or directoryグロビングエラーであり、破損したファイルシステムを示すものではないことを確認するようにお願いしています。
terdon

1
ファイルシステムを実行する必要があるのfsckでしょうか?破損している可能性があります。ファイルはどのようにしてその名前を取得しましたか?
クサラナンダ

1
@Mioriinファイル名の疑問符は、表示できない文字のプレースホルダーです(またはそうである可能性があります)。(の出力を解析しない理由の1つls
クサラナンダ

1
これは端末フォントの問題である可能性があります。それは見せて?、それが表示できない文字のために。完全にUnicodeのフォントに切り替えてみてください。
Mio Rin

5
@Mioriinこの場合、ファイル名を表示できるかどうかは、ちょっとニシンのようです。どのような奇妙なのは、シェルが拡大することが可能であることである*_000c.jpgが、ことmv、ファイルを処理することはできません。これは、私見で、破損したファイルシステムを示しています。...または、(ディレクトリエントリがまだキャッシュされている)なくなったネットワーク共有にマウントされているファイルシステム、または何か。
クサラナンダ

回答:


16

関連コメントの要約:

Unixファイルシステムでは、\0(nul)と/(スラッシュ)以外のファイル名に任意の文字を使用できます。事実lsショーは疑問符は、それが(理由の一つである現在のロケールでファイル名の文字の一部表示できない理由だけで、あなたがの出力を解析することは避けてくださいをls)。

ただし、Samba共有では、標準のUnixファイルシステムよりもファイル名に厳しい要件があるようです。

ファイルには、中間のSamba共有で「不正」な名前が付けられていたため、共有をマウントしているマシンでは正しい名前でアクセスできませんでした。

mvグロブパターンの拡張のためにSambaの共有から返された名前は、ホスティング、ファイルシステム、名前の唯一のSamba自身のマングルされたバージョンのファイルの実際の名前ではなかったので、うまくいきませんでした。

あなたの解決策は、実際にファイルをホストしているサーバーにログインし(Sambaよりも制限の少ない命名規則のファイルシステム上)、そこでファイルの名前を変更することでした。これは正しい行動方針でした。

この質問については、Unix&Linux チャットもご覧ください。


-2

UNIXシェルでの引用について学ぶ前に、emacsのdiredモードを使用して、一致しにくいファイルの名前を変更または削除しました。emacsでディレクトリを開くだけです。

emacs -q .

...次に、矢印キーを使用して、変更するファイルに移動し、ファイルの名前を変更できますR?使用可能なコマンドのリストが表示されます(一致させるのが難しいファイルも削除できます)。

その後C-x C-c、emacsから抜け出すだけで完了です。


-3

多くの場合、珍しいファイル名では、ファイル名の前に「./」を追加すると、Linuxがそれを正しく認識します。例:$ ls ./?j?Z?R?C1_000c.jpg

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.