在命令行上是否有更好的方法来基本上完成以下操作,但使用单个命令
cp -r css/ ar/
cp -r images/ ar/
cp -r js/ ar/
cp -r backups/ ar/
Run Code Online (Sandbox Code Playgroud)
我只是用分号将它们串在一起。
我想要cat当前文件夹中的文件和所有子文件夹(和子文件夹)中的所有文件。
这是我的目录结构
$ tree
.
??? f
? ??? foo
??? yo
Run Code Online (Sandbox Code Playgroud)
我想猫foo和yo。
我试过这个命令但没有用:
cat */*
Run Code Online (Sandbox Code Playgroud)
它只是catš foo。
如果我在一个深层目录中,让我们说:
~/Desktop/Dropbox/School/2017/C/A3/
Run Code Online (Sandbox Code Playgroud)
然后当我打开终端时,它说
bob@bob-ubuntu:~/Desktop/Dropbox/School/2017/C/A3/$
Run Code Online (Sandbox Code Playgroud)
然后我写下我的命令。那很长,我在终端中写的每一行都会转到下一行。我想知道是否有办法让它只显示我的当前目录。我希望它显示:
bob@bob-ubuntu: A3/$
Run Code Online (Sandbox Code Playgroud)
这样就很清楚了,而且我总是可以pwd看到我的整个目录。我只是不希望整个目录在终端中可见,因为它占用了太多空间。
是否可以创建一个类似于 的目标目录,mkdir -p我可以在我的 tar 命令中定义一个不存在的目标目录,并且 tar 将为我创建该目录?
我知道我可以使用 将输出重定向到一个目录tar -C /target/dir,但是如果目标目录不存在,这将不起作用。
我想删除主目录的所有子目录中具有给定名称的所有文件。
我试过:
rm -r file
Run Code Online (Sandbox Code Playgroud)
在我的主目录中,但它不起作用,因为该目录中不存在该文件。
我尝试删除“。” 目录。我以为我可以删除我的工作目录而不必进入父目录。
我的问题的重点是寻找有关 linux 系统如何工作以删除文件的一些见解。
我试图删除一些目录,但是
$ rm DE.aspx_files -r
rm: cannot remove `DE.aspx_files': Directory not empty
Run Code Online (Sandbox Code Playgroud)
但列出其内容返回无
$ ls DE.aspx_files
$
Run Code Online (Sandbox Code Playgroud)
补充:其实
$ ls -la DE.aspx_files
total 4
drwx------ 1 ting ting 4096 Sep 14 20:48 .
drwx------ 1 ting ting 0 Sep 13 22:34 ..
-rw------- 1 ting ting 0 Sep 13 22:34 .fuse_hidden0001d4bf00000006
Run Code Online (Sandbox Code Playgroud)
当我尝试时rm .fuse_hidden0001d4bf00000006,它被删除,但另一个新.fuse_hidden0001d4bf00000007创建。
所以我想知道发生了什么,以及如何解决这个问题?
注意:这是一个新买的外置移动硬盘,我只是使用数据恢复程序将一些文件复制到其中。
操作系统:Ubuntu 12.04
谢谢!
我解压了一个损坏的 tar 文件,并设法得到了一些我无法删除的目录,如果我尝试删除它,似乎找不到ls它,但显示它存在,无论是使用 bash 还是使用 python 我得到类似的行为,除了在我尝试用 删除它之后rm -rf, ls抱怨它找不到它,然后它列出它(见下文rm -rf)。该find命令显示文件存在,但我仍然想不出删除它的方法。
这是我的尝试:
在这里你看到了两者ls并find同意我们有一个目录,
rl]$ ls
mikeaâ??cnt
rl]$ find -maxdepth 1 -type d -empty -print0
./mikeaâcnt
Run Code Online (Sandbox Code Playgroud)
但我无法删除它:
rl]$ find -maxdepth 1 -type d -empty -print0 | xargs -0 rm -f -v
rm: cannot remove `./mikeaâ\302\201\302\204cnt': Is a directory
rl]$ ls
mikeaâ??cnt
Run Code Online (Sandbox Code Playgroud)
我可以cd,但它是空的:
rl]$ cd mikeaâ^Á^Äcnt/
mikeaâ^Á^Äcnt]$ ls
mikeaâ^Á^Äcnt]$ pwd
.../rl/mikeaâcnt
mikeaâ^Á^Äcnt]$ cd ../
rl]$ ls
mikeaâ??cnt …Run Code Online (Sandbox Code Playgroud) 假设我有一个这样的目录结构:
$ [~/练习] ls A B C D/
现在我想tmp1在所有子目录中创建一个目录practice,我这样做:
$ [~/practice] mkdir */tmp1 mkdir: 无法创建目录 `*/tmp1': 没有那个文件或目录
然后我尝试-p切换,最终得到一个以子目录命名*的目录tmp1
$ [~/practice] mkdir -p */tmp1 $ [~/练习] ls */ A B C D/
我知道-pswitch的用途是创建多个不存在的目录。我只是觉得它可能会有所帮助。
如何tmp1一次在所有子目录中创建?
如果可以做到这一点,我如何延长它来创建\tmp1,\tmp2,\tmp3中\a,\b并\c在一次?
编辑:我错过提的是,目录不必是简单而有序,像a,b,c等等,并且要创建的目录不一定喜欢tmp1,tmp2。
$ [~/练习] ls 狗/猫/老鼠/
在他们中,我想有类似的东西
$ [~/练习] ls * …
系统:我正在测试基于Ubuntu 18.04 的Linux Mint 19 Beta。
我在安装不相关的软件包时收到此警告:
Run Code Online (Sandbox Code Playgroud)gpg: WARNING: unsafe ownership on homedir '/home/vlastimil/.gnupg'
这是ls目录本身的输出:
$ lld /home/vlastimil/.gnupg
drwx------ 4 vlastimil vlastimil 4,0K Jun 26 11:42 /home/vlastimil/.gnupg
Run Code Online (Sandbox Code Playgroud)
这似乎没问题。
这是ls目录内容的输出:
$ ll /home/vlastimil/.gnupg/
total 24K
drwx------ 2 vlastimil vlastimil 4,0K Jun 26 11:36 crls.d
drwx------ 2 vlastimil vlastimil 4,0K Jun 26 05:28 private-keys-v1.d
-rw-r--r-- 1 vlastimil vlastimil 6,4K Jun 26 11:42 pubring.kbx
-rw-r--r-- 1 vlastimil vlastimil 3,2K Jun 26 11:37 pubring.kbx~
srwx------ 1 root …Run Code Online (Sandbox Code Playgroud)