名前を再入力せずに新しい文字のみを追加してファイルを移動して名前を変更する方法

名前を再入力せずに新しい文字のみを追加してファイルを移動して名前を変更する方法

毎日作成されるいくつかのファイルの場所を頻繁に変更しすぎます。問題は、新しい必須文字だけを追加して名前を変更したいということです。

私が望むのはこれです:

$ mv file.csv /home/user/{something}_backup1

だから私は見ることができます:

$ ls /home/user
file.csv_backup1

私が今やっていることは簡単です。

$ mv file.csv /home/user/file.csv_backup1

「怠けないでください」と言うことができます。問題は、実際のファイル名の長さが約25文字で、再入力するのが本当に迷惑であることです。

過去に提示されたものは単なる例であり、他の目次でも、別の新しいテキストでもかまいません。

さて、私はbashシェルを使用しています

答え1

使用できるまたはシェルrcファイルに追加された機能:

mymv(){ echo mv "$1" "$2/${1##*/}_$3"; }
mymv file.csv /home/user backup1

echoテスト完了後の時間の削除

答え2

IMHO、最も簡単な方法は変数を使用することです。

a=file.csv; mv "$a" ~user/"$a"_backup

変数を設定して使用するときは、変数のタブ補完機能を利用できます。

答え3

では、bash次のことを試すことができます。

  • タイプmv file1
  • Ctrl-w十分に押して削除してくださいfile1
  • Ctrl-yもう一度貼り付けるには押しますfile1
  • タイプ/home/user/
  • Ctrl-y貼り付けるにはタップしますfile1
  • 残りを入力してください:_backup

答え4

デフォルトフォルダ(または移動したいファイルを含むフォルダ以外のフォルダ)から簡単なスクリプトを作成できます。スクリプトは次のとおりです。

#!/bin/bash
for var in ./*
do
if [ -f "$var" ]
then
mv "$var" /home/user/"$var".backup1
fi
done
  • ファイルを移動するフォルダ内でこのスクリプトを実行してcd <the directory your files are in>から、このスクリプトを実行します。
  • このスクリプトはすべてのファイルを移動し、/home/userそれに応じて名前を変更します。
  • spaces ファイル名に問題がなければ
  • また、エラーメッセージや予期しない結果が発生しないように、ディレクトリ以外のファイルのみを移動するようにします。

関連情報