我试图将所有文件和文件夹从一个目录复制到另一个目录,但排除某些文件。具体来说,我想排除 subversion 文件和文件夹。但是,我想要一个通用而简洁的解决方案。
我想在不久的将来我会发现需要排除几种类型的文件。例如,我可能想排除 .svn、*.bak 和 *.prj。
这是我整理的内容,但它对我不起作用。第一部分, find 有效,但我在xargs和cp 上做错了。我试过cp有和没有-R. 另外,我使用的是 OS X,它的xargs版本似乎比 linux 系统少。
find ./sourcedirectory -not \( -name .svn -a -prune \)
| xargs -IFILES cp -R FILES ./destinationdirectory
Run Code Online (Sandbox Code Playgroud) 我用的是 Mac,所以我的键盘上没有Home和End键。我也经常使用 SSH 连接到 Linux 服务器。我发现当我通过 SSH 连接到运行 Jaunty 的 Ubuntu Linux 服务器时,我可以使用 readline 键绑定Ctrl-a并且Ctrl-e将光标移动到行的开头或结尾,但是我经常使用几个 Hardy 服务器SSH 到,并且这些键绑定在连接到它们时不起作用。
我已经尝试从 Linux 机器连接到它们,以防万一这与我的 Mac 终端的配置方式有关,并且我看到了相同的结果。
有谁知道为什么,以及如何解决这个问题?
我有一个 web 目录,其中包含许多文件夹和许多包含文件的子文件夹。
我需要使用 wget 或 bash 下载所有内容。
可能的重复:
可以在 bash 中统一历史文件吗?
我使用 Ubuntu Server 9.10,我希望能够查看多个终端会话的 bash 历史记录。即我最近的 200 个左右的命令,即使我已经在这期间注销了。
当我使用时,history我只看到来自实际终端会话的所有命令。如何从 Bash 中查看更多命令历史记录?我应该从 Ubuntu 中的默认值更改 bash 的任何特定设置吗?
我没有~/.bash_history文件。但我有一个~/.bashrc与HISTCONTROL=$HISTCONTROL${HISTCONTROL+,}ignoredups和HISTCONTROL=ignoreboth
echo $HISTFILE
/home/sanoj/.bash_history
echo $HISTSIZE
500
echo $HISTFILESIZE
500
echo $HISTCONTROL
ignoreboth
Run Code Online (Sandbox Code Playgroud)
更新:我现在正在 VirtualBox 中尝试 Ubuntu Server 10.10。如果我在没有关闭命令的情况下关闭 VirtualBox,那么下次启动时,上次会话的命令不会保存在历史文件中。
仅当我使用 shutdown 命令关闭机器时才会保存这些命令。例如关机 -P 0。
这一定是我的问题的原因。所以我必须弄清楚如何更频繁地保存命令历史。例如在每个命令之后。
几乎是错误的,我发现您可以执行以下操作:
$ cp foo.data bar1.data
$ ^bar1^bar2
Run Code Online (Sandbox Code Playgroud)
并且使用bar2.data而不是运行相同的命令bar1.data。现在,如果我多次出现目标词呢?例如:
$ cp foo.data bar.data
$ ^data^index
Run Code Online (Sandbox Code Playgroud)
它只替换第一个data扩展名。我如何让它替换两者?
可能的重复:
Unix 工具:如果一个文件的名字减去一些东西怎么办?
请告诉我如何逃避这个:
[root@unix ~]# ./-sh -bash: ./-sh: 权限被拒绝 [root@unix ~]# chmod +x -sh chmod:无效模式:`-sh' 试试 `chmod --help' 以获得更多信息。 [root@unix ~]#
我正在使用 bash,我想知道 bash 或其他 shell 中是否有任何插件允许我执行此操作
cat tfnislong.txt+[tab]完成cat ThisFileNameIsSoLong.txt就像 Sublime Text 中的选项卡完成一样。
Bash 4.2 添加了对负子字符串长度的支持:
http://tldp.org/LDP/abs/html/abs-guide.html#SUBSTREXTR01
例 37-12。字符串提取构造中的负参数
当“length”参数为负数时,它用作偏移量参数。
例如,在 Ubuntu 上测试时输出“World”:
STR="Hello World!"
echo ${STR:6:-1}
Run Code Online (Sandbox Code Playgroud)
但是在 OS X(GNU bash,版本 4.3.42(1)-release (x86_64-apple-darwin14.5.0))中,这种用法会产生以下错误:
-1: substring expression < 0
Run Code Online (Sandbox Code Playgroud)
这是 OS X 特定的,还是在以后的 bash 更新中再次被禁用?有没有办法为 OS X 启用此功能?
C:\Users\<username>\AppData\Local\lxss,但是 WSL 的文件在哪里?有一个答案声称他们在C:\Users\<username>\AppData\Local\Lxss\rootfs,但我发现它是空的。"C:\Windows\sysnative\bash.exe". WSL 有没有类似的东西,所以我可以在 Visual Studio Code 中使用它?今天早上我在 bash 终端中有这种奇怪的行为:
user@home:/home/user$ [ -f /etc/openvpn/client.conf ] && echo true
bash: [: missing «]»
user@home:/home/user$ [ -f /etc/openvpn/client.conf ] && echo true
true
Run Code Online (Sandbox Code Playgroud)
经过一番挖掘,我发现删除第 30 个字符(client.conf 和“]”之间的空格)并用空格替换它使命令再次起作用。
我的假设是正确的:命令中出现了一个未知的空白字符,但问题是:
顺便说一句,我运行的是 Ubuntu 18.04 / 法语,我粘贴命令的脚本位于 USB 驱动器中,并且也可能在 Windows 上进行了编辑。
谢谢你的好答案。坏字符是一个c2 a0不间断空格 UTF-8 字符。How to remove special 'M-BM-' character with sed这个问题有关于该角色的有趣事实。
奇怪的是,剧本竟然没有这个角色。所以我不知道它是从哪里来的。