(ファイル名に奇妙な文字を含めることは)悪い考えですが、あなたはそうすることができます
mv somefile.txt "foo
bar"
(mv somefile.txt "$(printf "foo\nbar")"
またはmv somefile.txt foo$'\n'bar
、or なども実行できます。詳細はシェルに固有です。私はを使用していますzsh
)
詳細読むグロブ例えば、(7)グロブ。詳細はシェル固有の場合があります。しかし、それは理解/bin/mv
を経て、(お使いのシェルによって)与えられているのexecve(2) 、拡張された引数の配列:引数の拡張とグロブは、起動したシェルの責任です。
また、小さなCプログラムをコーディングして同じことを行うこともできます。
#include <stdio.h>
#include <stdlib.h>
int main() {
if (rename ("somefile.txt", "foo\nbar")) {
perror("rename somefile.txt");
exit(EXIT_FAILURE);
};
return 0;
}
上記のプログラムをに保存しfoo.c
、コンパイルしてgcc -Wall foo.c -o foo
実行します./foo
同様に、Perl、Ruby、Python、Ocamlなどで同様のスクリプトをコーディングできます。
しかし、それは悪い考えです。ファイル名の改行は避けてください(ユーザーを混乱させ、多くのスクリプトを壊す可能性があります)。
実際、 ファイルパスには、アクセント記号のない文字、数字、および+-/._%
文字(/
ディレクトリの区切り文字)のみを使用することをお勧めします。「非表示」ファイル(で始まる.
)は慎重に使用してください。ファイル名にスペースを使用するのは間違いだと思います。代わりにアンダースコア(例foo/bar_bee1.txt
)またはマイナス(例foo/bar-bee1.txt
)を使用してください