Bash 将所有扩展名为的文件复制到相应的文件夹

Bash 将所有扩展名为的文件复制到相应的文件夹,bash,pdf,copy-paste,Bash,Pdf,Copy Paste,我不熟悉创建.sh文件(和bash脚本),我正在尝试创建一个脚本,该脚本将读取副本文件,并将其重命名为具有适当名称的文件夹,但不知道如何解决这个问题。我希望你们中的一个能给我指出正确的方向 这是我的开始(仍然有一些错误) 解决方案更简单: $ find . -name \*.pdf -exec cp ... 如果你想了解更多信息 编辑 更简单地说: $ cp **/*.pdf target_directory 也许你想做这样的事情: SOURCE="./temp_pdf" DESTINATI

我不熟悉创建.sh文件(和bash脚本),我正在尝试创建一个脚本,该脚本将读取副本文件,并将其重命名为具有适当名称的文件夹,但不知道如何解决这个问题。我希望你们中的一个能给我指出正确的方向

这是我的开始(仍然有一些错误)


解决方案更简单:

$ find . -name \*.pdf -exec cp ...
如果你想了解更多信息

编辑

更简单地说:

$ cp **/*.pdf target_directory

也许你想做这样的事情:

SOURCE="./temp_pdf"
DESTINATION="copy"
mkdir -p "$DESTINATION"

for i in `find "$SOURCE" -type f | grep 'pdf$'`; do #loop for findg all .pdf files residing in temp_pdf
    cp -v "$i" "$DESTINATION"  #copy the the file to DESTINATION folder (verbose)
done

我不确定您是否要使用全局目标文件夹。如果要执行此操作,可以在循环中执行。

如果我在一个目录中有.ext文件,我希望在更改文件名的同时将其放在另一个目录中,我会执行以下操作:

for file in path/to/dir1/*.ext; do 
  mv $file path/to/dir2/new_pref${file}new_suf
done
您可以将其放入名为ren.sh的文件中

$ chmod u+x ren.sh
$ ./ren.sh

new\u-pref
可以是一些字符串,
new\u-suf
可以是类似于
的.alt
或.new。如果要删除部分文件名,请使用
${file%*id}
${file##*id}
分别删除文件名开头或结尾的内容,直到并包括
id
。其中,
id
是文件名的重复部分,如
\uu
-
等。谷歌搜索参数扩展以获取更多详细信息,或者查看参数扩展下的“ManBash”

这缺少了输出目录中使用文件名前4个字符的部分。谢谢您的帮助,我只想知道一件事。如何将文件复制或移动到只知道起始4个字符和通配符directory=${I:0:4};#读取文件名cp$i/copy/$directory*的前4个字符#将文件复制到/copy/xxxx*文件夹
$ chmod u+x ren.sh
$ ./ren.sh