我想在复制时排除两个目录。
例子:
$ ls /root/tmp
a b c d e f
Run Code Online (Sandbox Code Playgroud)
我想排除目录a和b:
$ cp -rp /root/tmp/ /root/tmp1/
Run Code Online (Sandbox Code Playgroud) 我想在 bash 中递归复制具有特定扩展名的所有文件。
**编辑****
我已经写好了完整的剧本。我在 csv 文件中有一个名称列表,我正在迭代该列表中的每个名称,然后在其他地方创建一个具有相同名称的目录,然后我在源目录中搜索其中具有该名称的目录很少有以 结尾的文件xlsx,tsv,html,gz,我正在尝试将它们全部复制到新创建的目录中。
sample_list_filepath=/home/lists/papers
destination_path=/home/ds/samples
source_directories_path=/home/papers_final/new
cat $sample_list_filepath/sample_list.csv | while read line
do
echo $line
cd $source_directories_path/$line
cp -r *.{tsv,xlsx,html,gz} $source_directories_path/$line $destination_path
done
Run Code Online (Sandbox Code Playgroud)
这是可行的,但它会复制那里的所有文件,不区分特定扩展名。
问题是什么?
如何在没有sudo的情况下将文件夹复制到/ var/www?
我的文件夹codes在/ var/www具有以下权限
4 drwxr-xr-x 8 root root 4096 2009-08-09 03:01 codes
Run Code Online (Sandbox Code Playgroud)
我只能sudo cp -r ~/Dropbox/codes/ /var/www复制文件.没有sudo,我无法复制它们.
我有一个非常奇怪的错误.
我运行一个执行linux命令的perl脚本.他们执行如下:
my $err = `cp -r $HTML /tssobe/www/tstweb/$subpath/$HTMLDIR1`;
myLog("$err");
Run Code Online (Sandbox Code Playgroud)
并且$ err为空,这意味着命令没有返回和错误.(对?)
我尝试用exec""或system()执行linux命令,但没有成功.我试图改变路径.相同.
另外,我试图在新的perl脚本中只运行cp命令.有用.但不是我的完整perl脚本.
在这个perl脚本中,有些命令正在运行,有些则没有.
该脚本昨天正在运行,今天早上不再了.在此期间没有进行任何更改.
我尝试了很多东西,如果有人有想法,我会很高兴的.
编辑:服务器有很多进程未终止.清洁那些解决了问题.所以问题与另一个应用程序有关,但是由于你的意见我会改进日志记录.
我想将所有以字符串开头的文件复制到同一目录中的文件夹中.我试过cp foo* backup/foo*但得到了
usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file target_file
cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file ... target_directory
Run Code Online (Sandbox Code Playgroud)
我该如何复制完成此操作?
我有一个简单的bash for循环,我试图在其中执行一个命令.循环是这样我可以执行不同的文件名.
文件是:
crystal0_cmin.pdb
crystal1_cmin.pdb
.
.
.
Run Code Online (Sandbox Code Playgroud)
循环是:
for ((i=0;i<=10;i++))
do
cp Files/crystal$i_cmin.pdb Energy/
cp Files/crystal$i_cmin.psf Energy/
done
Run Code Online (Sandbox Code Playgroud)
问题是我总是收到以下错误消息:
cp: cannot stat `Files/crystal.pdb': No such file or directory
cp: cannot stat `Files/crystal.psf': No such file or directory
Run Code Online (Sandbox Code Playgroud)
但我从来没有指定文件crystal.pdb和crystal.psf.它只是忽略了所有i的$ i扩展名.也就是说,没有文件被复制.
有谁知道如何解决这个问题.
谢谢!
我想用SSH更新我的Wordpress网站,我在博客中阅读如何实现它.
但在此之前,我想确认这是否是一个有效的Linux复制命令.因为我不确定.我会解释为什么..
这是语法 -cp -rpf -f /WordPress3.9.1/* /wordPress3.9.2/
根据博客,此命令将" 复制更新的文件并覆盖旧文件 "
请注意,有两个-f标志.据http://explainshell.com/的-f标志告诉复制命令,如果现有目标文件无法打开,删除它,然后再试一次.我不确定cp命令语法中是否有2个-f标志是冗余且无效的.请帮忙!
cp - 复制文件和目录
-R,-r, - recursive - 递归复制目录
-p - 与--preserve = mode,ownership,timestamps相同
-f, - force - 如果无法打开现有目标文件,请将其删除并重试(如果使用-n选项,则为冗余)
我想将文件夹的内容复制到另一个文件夹,而不复制实际的文件夹本身.例如,在/ dirA/dirB/I中有a.txt,b.txt和c.txt.我想要做:
cp -r /dirA/dirB/ /some/folder/
Run Code Online (Sandbox Code Playgroud)
以某种方式,a.txt,b.txt和c.txt在/ some /文件夹中,而不是在/ some/folder/dirB中
我有一个命令(有效,但脚本运行时所有内容都是从终端输出复制粘贴的):
cp --parents mcare.properties /mnt/hgfs/Shared-workspace/Release/CRMT-mcare/msite-binaries-UAT/mcare/WEB-INF/classes
Run Code Online (Sandbox Code Playgroud)
该命令由带有变量而不是文件名或目录的脚本执行,它看起来像这样(并且这个不起作用):
cp --parents $source $destination
Run Code Online (Sandbox Code Playgroud)
记录以查看每个变量中的内容:
source=mcare.properties
pwd:
/mnt/hgfs/Shared-workspace/Workspaces-CVS/Release-CRMT-mcare/mCare/config/UAT/home/wlp/mcare/WEB-INF/classes
total 16
-rwxrwxrwx. 1 root root 6724 Feb 29 19:50 activareCont.properties
drwxrwxrwx. 1 root root 0 Feb 29 20:10 CVS
-rwxrwxrwx. 1 root root 2333 Aug 25 17:55 externalpartner.properties
-rwxrwxrwx. 1 root root 1764 May 26 10:36 login.properties
-rwxrwxrwx. 1 root root 10068 Aug 25 17:55 mcare.properties
-rwxrwxrwx. 1 root root 8551 May 27 16:04 msite.properties
config/UAT/home/wlp/mcare/WEB-INF/classes/mcare.properties
UAT/home/wlp/mcare/WEB-INF/classes/mcare.properties
medium=UAT
/mnt/hgfs/Shared-workspace/Release/CRMT-mcare/msite-binaries-UAT/mcare/WEB-INF/classes
cp: with --parents, the destination must …Run Code Online (Sandbox Code Playgroud) 我有使用上述命令在os-x UNIX上运行的bash脚本:
cp -avr source destination
结果是以下错误:
cp: the -R and -r options may not be specified together.
当我删除该a标志时,它可以正常运行而不会出错。
此错误的原因和含义是什么?
谢谢,