1

あるディレクトリから別のディレクトリにファイルをコピーし、現在の日付をこのファイル名に追加しようとしています。スクリプトは次のようになります

#!/bin/bash

echo 'Move to homedir'
cd $HOME

echo 'Copy .txt files'
NOW=$(date +"%d%m%Y")

for FILENAME in *.txt
do
        cp "${FILENAME}" "/newdir/${FILENAME}${NOW}"
done

このように、ファイル拡張子の後に日付が追加されるため、これはエラーを生成します

file1.txt10082013

それを避ける方法は?

4

1 に答える 1

7

拡張子を抽出してファイルの名前を変更してみてください。

NAME="${FILENAME%.*}"
EXT="${FILENAME##*.}"

cp "${FILENAME}" "/newdir/${NAME}${NOW}.${EXT}"
于 2013-08-10T10:08:46.567 に答える