GNU/Linux >> Linux の 問題 >  >> Linux

mv が存在しない場合に、移動先のディレクトリを作成する方法はありますか?

このワンライナーはどうですか (bash で):

mkdir --parents ./some/path/; mv yourfile.txt $_

内訳:

mkdir --parents ./some/path

ディレクトリ (すべての中間ディレクトリを含む) を作成し、その後:

mv yourfile.txt $_

ファイルをそのディレクトリに移動します ($_ は、前のシェル コマンドに渡された最後の引数、つまり新しく作成されたディレクトリに展開されます)。

これが他のシェルでどこまで機能するかはわかりませんが、何を探すべきかについてのアイデアが得られるかもしれません.

この手法を使用した例を次に示します:

$ > ls
$ > touch yourfile.txt
$ > ls
yourfile.txt
$ > mkdir --parents ./some/path/; mv yourfile.txt $_
$ > ls -F
some/
$ > ls some/path/
yourfile.txt

mkdir -p `dirname /destination/moved_file_name.txt`  
mv /full/path/the/file.txt  /destination/moved_file_name.txt

mv または mv.sh という名前のスクリプトとして保存

#!/bin/bash
# mv.sh
dir="$2"
tmp="$2"; tmp="${tmp: -1}"
[ "$tmp" != "/" ] && dir="$(dirname "$2")"
[ -a "$dir" ] ||
mkdir -p "$dir" &&
mv "[email protected]"

または、 ~/.bashrc ファイルの最後に、新しい端末ごとにデフォルトの mv を置き換える関数として配置します。関数を使用すると、毎回スクリプト ファイルを読み取る代わりに、bash がメモリを保持できます。

function mv ()
{
    dir="$2"
    tmp="$2"; tmp="${tmp: -1}"
    [ "$tmp" != "/" ] && dir="$(dirname "$2")"
    [ -a "$dir" ] ||
    mkdir -p "$dir" &&
    mv "[email protected]"
}

これらは Chris Lutz の投稿に基づいています。


Linux
  1. ディレクトリ内のファイル数を数える最良の方法は何ですか?

  2. Tmuxの現在のディレクトリに新しいウィンドウを作成するにはどうすればよいですか?

  3. その中にディレクトリとファイルを作成するための1つのコマンドlinuxコマンド

  1. 変更されない URL から最新のサーバー jar を取得する方法はありますか?

  2. Nano でオートコンプリートとオート ブラケット クロージングをサポートする方法はありますか?

  3. 検索対象のフォルダーを除外するにはどうすればよいですか?

  1. ファイルがすでに両側にある場合にディレクトリ構造を同期する方法はありますか?

  2. Isoを抽出する最速の方法は?

  3. SELinuxを学ぶ最良の方法は何ですか?