フォルダを作成してファイルを移動するためのbashエイリアス

フォルダを作成してファイルを移動するためのbashエイリアス

以下を実行するためにbashエイリアスを作成しようとしています。

  1. フォルダの作成(現在の日付をフォルダ名として使用)
  2. 現在のフォルダから新しいフォルダにファイルを移動(またはコピー)します。

ファイル名はエイリアスに変数として渡されます。例えば、my-alias file.txt

以下は私が試したいくつかのことです(もっと多くのバリエーションを試しましたが)。

alias my-alias="mkdir -v -p '$(date +%F)-List' && cp $1 './$(date +%F)-List/$1' && cd '$(date +%F)-List'"

alias my-alias="mkdir -v -p '$(date +%F)-List' && cp $1 ./$(date +%F)-List/$1 && cd '$(date +%F)-List'"

alias my-alias="mkdir -v -p '$(date +%F)-List' && cd '$(date +%F)-List' && cp ../$1 ./$1"

コマンドを書くためのいくつかの方法を試しましたが、そのうち何も機能しません。

私は何を見ていますか?

これはMacオペレーティングシステムにあり、他のほとんどのLinux環境と同じである必要があります。

更新:私はどこで間違っていますか?

私はどこで混乱しているのか気づきました。私はパラメータを受け取るように見える多くのエイリアスを設定しました。私はずっと前に(数年前)それらを設定しました。エイリアスはコマンドラインに入力したときに次のものをすべて処理できるため、エイリアスは引数だけを受け入れるように見えました。ただし、エイリアスが参照するコマンド文字列の末尾にある「引数」のみが同じ順序で処理されます。したがって、エイリアスコマンド文字列のパラメータ調整が開始されるとすぐに、エイリアスは中断されます。はい。最良の方法は機能を使用することです。

ベストアンサー1

エイリアスを使用する必要がある場合は、-tを使用して移動するファイルの実際の引数の前にターゲットディレクトリを指定できます。

alias my-alias="mkdir \$(date +%F); mv -t \$(date +%F)"

Linuxでは動作しますが、テストするMacOSシステムはありません。

おすすめ記事