這是兩個不同的需求。分開回答。
1、文件合并
find . -type f -name cat {} \; > all_files.txt
2、目錄合并
cp -aR $1/* $2/
選項 "-a" 表示連同時間戳一起復制,不改變文件復制后的時間戳;"-R" 表示遞歸復制,當前文件夾以及子文件夾下的文件一并復制過去。
$1 和 $2 分別表示 源文件所在目錄 和 目標文件所在目錄。
典型的用法是:
SrcDir="/mnt/d/src" DesDir="/mnt/d/des" cp -aR ${SrcDir}/* ${DesDir}/
3、刪除目錄和子目錄下所有的指定文件,但是保留文件夾,這種情況常常出現在第2步中,目錄合并之后,需要處理源文件位置($SrcDir)下的文件,以減少硬盤空間的占用。
示例如下:
ftype="txt" fpath="/mnt/d/rawdata" find ${fpath}/ -name "*."${ftype} | xargs rm
浙公網安備 33010602011771號