在文件夹中制作n个文件副本并将它们复制到特定文件夹
Make n copies of files in folder and copy them to a specific folders
我已经编辑了这个问题,因为可能对其他人有用,好吧,我的问题是下一个:
我有数百个文件,准确地说是 256 个,这些文件是 .csv,
我需要为每个文件生成一个包含 50 个副本的 directory/folder,
例如:
-file1.csv---->folder_for_file1---->1copy_file1.csv,2copy_file1.csv,3copy_file1.csv........50copy_file1.csv
-file2.csv---->folder_for_file2---->1copy_file2.csv,2copy_file2.csv,3copy_file2.csv........50copy_file2.csv
-file3.csv---->folder_for_file3---->1copy_file3.csv,2copy_file3.csv,3copy_file3.csv........50copy_file3.csv
...
-file256.csv---->folder_forfile256---->1copy_file256.csv,2copy_file256.csv,3copy_file256.csv........50copy_file256.csv
我可以用什么来做到这一点??,一些 bash 脚本或一些简单的 ubuntu/linux 命令,例如 mk dir?
P.D/P.S.The他们提供给我的答案,效果很好,但是我对生成的文件夹的名称有疑问,因为它的名称是文件,它对我没有用。
提前致谢
您的要求不是很明确。我会用一些假设来回答。
对于每个名为 file_i
的文件,假设您要在这些文件的同一路径下为该文件创建一个名为 file_i_folder
的目录。您可以通过以下命令执行此操作:
ls | xargs -t -n1 -i mkdir {}_folder
然后您要在相应目录下创建每个文件的副本。由于文件名不能重复,您可能希望为副本提供前缀,例如copy1_file1
。您可以通过以下命令执行此操作:
ls -p | grep -v / | xargs -t -n1 -i bash -c 'for i in {1..50}; do cp {} "{}_folder/copy${i}_{}" ; done'
您可以随意更改命令来更改文件和目录名称的格式。
我已经编辑了这个问题,因为可能对其他人有用,好吧,我的问题是下一个:
我有数百个文件,准确地说是 256 个,这些文件是 .csv, 我需要为每个文件生成一个包含 50 个副本的 directory/folder, 例如:
-file1.csv---->folder_for_file1---->1copy_file1.csv,2copy_file1.csv,3copy_file1.csv........50copy_file1.csv
-file2.csv---->folder_for_file2---->1copy_file2.csv,2copy_file2.csv,3copy_file2.csv........50copy_file2.csv
-file3.csv---->folder_for_file3---->1copy_file3.csv,2copy_file3.csv,3copy_file3.csv........50copy_file3.csv
...
-file256.csv---->folder_forfile256---->1copy_file256.csv,2copy_file256.csv,3copy_file256.csv........50copy_file256.csv
我可以用什么来做到这一点??,一些 bash 脚本或一些简单的 ubuntu/linux 命令,例如 mk dir?
P.D/P.S.The他们提供给我的答案,效果很好,但是我对生成的文件夹的名称有疑问,因为它的名称是文件,它对我没有用。
提前致谢
您的要求不是很明确。我会用一些假设来回答。
对于每个名为 file_i
的文件,假设您要在这些文件的同一路径下为该文件创建一个名为 file_i_folder
的目录。您可以通过以下命令执行此操作:
ls | xargs -t -n1 -i mkdir {}_folder
然后您要在相应目录下创建每个文件的副本。由于文件名不能重复,您可能希望为副本提供前缀,例如copy1_file1
。您可以通过以下命令执行此操作:
ls -p | grep -v / | xargs -t -n1 -i bash -c 'for i in {1..50}; do cp {} "{}_folder/copy${i}_{}" ; done'
您可以随意更改命令来更改文件和目录名称的格式。