Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 在Mac中使用终端从一个文件夹复制到另一个文件夹的文件数_Linux_Bash_Macos_Terminal - Fatal编程技术网

Linux 在Mac中使用终端从一个文件夹复制到另一个文件夹的文件数

Linux 在Mac中使用终端从一个文件夹复制到另一个文件夹的文件数,linux,bash,macos,terminal,Linux,Bash,Macos,Terminal,我正试图关注一个关于机器学习的博客。在博客中,作者使用linux命令将一定数量的文件从一个文件夹传输/复制到另一个文件夹。我在Mac上工作,我试图根据Mac环境用有限的知识修改命令来运行这些命令,但无法将它们复制到其他文件夹。下面是从博客复制的Linux命令 #Transfer data into the specific directory echo "---Parasitized---" cd Parasitized_all cp `ls Parasitized_all | head -50

我正试图关注一个关于机器学习的博客。在博客中,作者使用linux命令将一定数量的文件从一个文件夹传输/复制到另一个文件夹。我在Mac上工作,我试图根据Mac环境用有限的知识修改命令来运行这些命令,但无法将它们复制到其他文件夹。下面是从博客复制的Linux命令

#Transfer data into the specific directory
echo "---Parasitized---"
cd Parasitized_all
cp `ls Parasitized_all | head -5000` ../Parasitized_train
cp `ls Parasitized | tail -n+5001 | head -5000 | wc -l` ..Parasitized_validation
cp `ls Parasitized | tail -n+5001 | tail -3779 | wc -l` ..Parasitized_test
例如,我尝试将上述语句的第一个copy命令复制到mac中,如下所示:

cp `Documents/folder_directory/Parasitized_all | head -5000` Documents/folder_directory/Parasitized_train

然而,它没有起作用。是否有人可以指导我识别我所犯的错误?

当您运行以下程序时,会出现故障:

cp `Documents/folder_directory/Parasitized_all | head -5000`
因为你正在尝试做一件事,而shell正在理解另一件事。通过运行head 5000,您希望读取该文件Documents/folder\u directory/Parasitized\u all,并将该列表作为源,然后复制与该列表的前5000行一致的文件,但cp不是这样工作的,它只理解将源文件复制到目标文件。而且,它甚至不是一个文件,而是一个目录

该命令与ls Parasitized_all | head-5000的区别在于,最后一个命令的输出将是一个文件列表,可以用作将文件复制到目标路径的源

也就是说,请注意,在您运行的命令中,您缺少开头的ls,因此不会出现文件列表。所以,试着运行这个,我从ls改为find,只是因为我更喜欢使用它:

cp $(find Documents/folder_directory/Parasitized_all -type f | head -5000) Documents/folder_directory/Parasitized_train/
或者如果遇到错误,如参数列表过长:


根据你给出的例子,你应该小心对待这个博客。请自行承担风险。上面展示了许多不好的做法。请注意:感谢您的回答,当我运行命令时,它会向我抛出以下消息:-bash:/bin/cp:参数列表太长在这种情况下,您可以尝试运行一个循环:for FILE in$find Documents/folder_directory/Parasitized_all-type f|head-5000;是否执行cp$文件文档/文件夹\目录/寄生\列车/;完成
for FILE in $(find Documents/folder_directory/Parasitized_all -type f | head -5000); do
    cp $FILE Documents/folder_directory/Parasitized_train/
done