复制文件,使得单个文件被复制到具有文件名作为完整文件夹名称内的字符串的文件夹中

复制文件,使得单个文件被复制到具有文件名作为完整文件夹名称内的字符串的文件夹中

我使用 Cygwin 作为 Linux shell,当前工作目录中有以下内容:

文件:

Abc.dat
123.dat
456.dat

Directories:
W_Abc_w 
W_123_w 
W_456_w

Now I want to copy files as below: 
Abc.dat -> W_Abc_w
123.dat -> W_123_w
456.dat -> W_456_w

如何用一行 Linux 命令实现这一点?或者用一个简短的 shell 脚本?

答案1

使用 Bash 循环:

#!/bin/bash
for f in *.dat; do
  sub="${f%.dat}"
  [ -d "W_${sub}_w" ] && cp -- "${f}" "W_${sub}_w"/
done

相关内容