我有一个目录,里面充满了各种文件,它们的名称不同(即,没有使用特定的模式命名),并且具有不同的扩展名,我想将每个文件放在以每个文件命名的新创建的子目录中。在Linux下从命令行完成此操作的最佳方法是什么? 这听起来有点令人困惑,让我举个例子:让我们在目录中调用随机文件./filename.ext,我想将其放在名为的子目录中,./filename以便有效地使新路径为./filename/filename.ext。 我通过以下步骤进行了一些试验: 我已经在测试目录中创建了一些测试文件,从file-1.txt到file-9.txt,for num in {1..9}; do touch file-$num.txt; done 我创建了一个目录,该目录以每个文件名命名 for name in $(eval ls | cut -b 1-6); do mkdir $name; done 我已经将源文件移到它们各自的目录中, for name in $(eval ls | grep -e ".txt" | cut -b 1-6); do mv $name.txt $name/$name.txt; done 如您所见,此解决方案有效,但其巨大缺点在于,在这种情况下,它只能用于文件名长度较长且具有特定扩展名的文件。如果我有一些文件使用不同的名称和扩展名,那将毫无用处。cut我想在这里使用命令不是理想的解决方案,但是目前我还没有发现任何更好的方法。 另外,在移动/重新命名文件时自动找到子目录的方法也很酷,而不必mkdir以前使用(因此,当我ls实际重命名时,我不必担心排除新创建的目录) ); 但最终这是第二个问题。
我面临的SLURM问题可以总结如下。考虑一个bash脚本test.sh,该脚本请求8个CPU,但实际上使用10个CPU启动作业: #!/bin/sh #SBATCH --ntasks=8 stress -c 10 在具有32个CPU的服务器上,如果我用来启动此脚本5次sbatch test.sh,则其中的4个立即开始运行,最后一个显示为待处理,如squeue命令所示: JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON) 5 main test.sh jack PD 0:00 1 (Resources) 1 main test.sh jack R 0:08 1 server 2 main test.sh jack R 0:08 1 server 3 main test.sh jack R 0:05 1 server 4 …
我对在Macbook Pro上使用终端非常陌生,并试图了解如何使用它导航到某些目录。我似乎无法离开我的用户名目录。我正在尝试访问MAMP / htdocs,并将这些文件放入我的git存储库中。我是这一切的新手。 我正在打字并得到这个 David-Adamss-MacBook-Pro:~ davidadams$ cd Applications/MAMP/htdocs/barcodes -bash: cd: Applications/MAMP/htdocs/barcodes: No such file or directory 我需要从该行中取出“ davidadams $”,但我不知道如何导航。任何帮助都会很棒,谢谢
我在同一台计算机上打开了多个shell(bash),在其中一个中,globbing似乎已停止。ls *给ls: *: No such file or directory,依此类推。我认为我一定是错误地设置了一些全局选项,但是shopt | grep glob给出了 dotglob off extglob off failglob off nocaseglob off nullglob off 和我其他的外壳一样。是什么原因造成的?