パラメータを使用して名前付きディレクトリにファイルを移動する必要があります。
これまでファイルをディレクトリに移動する方法について作業してきました。
mkdir "$3"
cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 255 > $(shuf -n 1 /usr/share/dict/french)
これまでは機能しますが、このファイルをユーザーがパラメータに指定したディレクトリに移動する必要があります$3
。find
数秒前に生成されたファイルを選択するためにコマンドを試しましたが、n
他のファイルも選択できるため、実際にはそれほど効率的ではありません。
答え1
fromというディレクトリを作成していますが、$3
現在ディレクトリにファイルを作成しています。
新しいディレクトリにファイルを作成するには、そのディレクトリの名前にリダイレクトするだけです。
mkdir "$3"
tr -dc 'A-Za-z0-9' </dev/urandom | head -c 255 >"$3/$(shuf -n 1 /usr/share/dict/french)"
または、読みやすくするためにコンテンツを分離してください。
dir=$3
mkdir -p -- "$dir" || exit 1
fname=$(shuf -n 1 /usr/share/dict/french)
tr -dc 'A-Za-z0-9' </dev/urandom | head -c 255 >"$dir/$fname"
ここでは$3
、存在しないサブディレクトリパスが含まれている場合は、フルパスが生成されます(;へ-p
の呼び出しを追加して、mkdir
mkdir
いいえパスが既にある場合は失敗します。)私もパスの前に次のものを付けました。--
もしかしての最初の文字$3
はaです。それ以外の場合は、コマンドラインオプションの終わりを示す混乱が発生する可能性-
がありますmkdir
。--
呼び出しが失敗すると、ゼロ以外の終了状態で終了しますmkdir
。