我正在尝试查找所有 777 的 Web 文件夹。但我只想要顶级文件夹的列表。
因此,如果有一个 img 目录,其中的文件夹也是 777,我不希望它们返回。
基本上,我正在寻找一种在找到 777 的文件夹后找到停止下降的方法。
find /var/www/vhosts/ -type d -perm 777
Run Code Online (Sandbox Code Playgroud)
给我
/var/www/vhosts/example.com/httpdocs/img
/var/www/vhosts/example.com/httpdocs/img/gbl
/var/www/vhosts/example.com/httpdocs/img/ss
Run Code Online (Sandbox Code Playgroud)
我想要的只是第一个
/var/www/vhosts/example.com/httpdocs/img
Run Code Online (Sandbox Code Playgroud) 我很擅长使用 bash 脚本编写,而且我正在学习正则表达式和一些 sed 用法。学习 awk 是否仍然值得,因为那里有所有替代方案。意见?
我有一个 Linode 的 VPS。我部署了 Ubuntu 10.04 服务器。我添加了一个用户并将其放在 sudoers 文件中。当我以用户身份写作时
apti <TAB>
Run Code Online (Sandbox Code Playgroud)
它与选项卡一起完成
aptitude <TAB>
Run Code Online (Sandbox Code Playgroud)
但是当我继续
aptitude upd <TAB>
Run Code Online (Sandbox Code Playgroud)
它没有完成,但在我的桌面上效果很好。更糟糕的是,如果我用 sudo 尝试相同的命令
sudo apti <TAB>
Run Code Online (Sandbox Code Playgroud)
不起作用我检查了 .basrc、.profile/.bashrc 和 /etc/bash.basrc 文件,但它们都没有被注释掉,所以出了什么问题。顺便说一句,当我扎根时它可以工作
我的 ~/bashrc
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
Run Code Online (Sandbox Code Playgroud) 作为迁移脚本的一部分,我必须 chmod 和 chown 数十万个文件。每个命令大约需要一个半小时才能完成。我意识到这两个操作可以同时运行,从而减少了运行时间,我通过在 shell 中测试证实了这一点。
我知道使用“&”将命令推入后台的技巧,但我需要确保在继续执行脚本的其余部分之前完成两个进程。
谢谢
现在,我输入“python myfile.py”来运行它。
如何输入“py myfile.py”来运行它?或者更好,这样做./myfile.py?
有小费吗?
我目前是一名程序员,因此需要不断将我的软件上传到远程系统进行测试。我有大约 7 台机器需要接收所有内容的副本。
目前,我有一个简短的 bash 脚本,其中有一个 scp 为每台远程机器执行传输:
echo -e "\nUpdating Taiwan Machine"
scp {file1,file} bschlinker@taiwan:/home/bschlinker/
echo -e "\nUpdating Wisconsin Machine"
scp -P 2400 {file1,file2} bschlinker@wisconsin:/home/bschlinker/
Run Code Online (Sandbox Code Playgroud)
我痛苦地被提示输入每台机器的密码。我知道我可以用 SSH 密钥解决这个问题——但我不想通过密钥对远程机器进行无密码身份验证。因此,我在 SSH 密钥上设置了密码。我读过一次输入密码后,它将在当前终端会话的其余部分保持活动状态。真的吗?如果没有,有什么想法吗?
我使用运行的 bash 脚本
/usr/bin/ssh -f -N -T -L8888:127.0.0.1:3306 serveradmin@34.324.234.23
Run Code Online (Sandbox Code Playgroud)
但是,当我运行 bash 脚本时,它会等待.. 我看到连接出现但脚本没有退出.. 就像它在等待 SSH 进程完成一样,因为当我手动杀死它时,bash 脚本完成为好。
任何想法如何解决这个问题?
更新: 我已经编写了这个脚本..cron 进程是一个变成僵尸的进程.. 实际的脚本运行得很好,抱歉,使用 ps -auxf 我得到:
root 597 0.0 0.7 2372 912 ? Ss Jul12 0:00 cron
root 2595 0.0 0.8 2552 1064 ? S 02:09 0:00 \_ CRON
1001 2597 0.0 0.0 0 0 ? Zs 02:09 0:00 \_ [sh] <defunct>
1001 2603 0.0 0.0 0 0 ? Z 02:09 0:00 \_ [cron] <defunct>
Run Code Online (Sandbox Code Playgroud)
当我杀死 ssh 时,不复存在的人消失了..为什么他们会不复存在?
由于这更像是一个 Bash 问题,我认为这比超级用户更适合服务器故障,即使我在谈论媒体文件。
我不得不对几个媒体文件进行批量转换,所有输出文件都有一个新的时间戳。
/somedir/
file1.mpg (correct timestamp)
file1.mpg.m4v (wrong timestamp)
file2.mpg (correct timestamp)
file2.mpg.m4v (wrong timestamp)
...
Run Code Online (Sandbox Code Playgroud)
我想要做的是时间戳的批处理副本,以便每个 *.mpg.m4v 获得相应 *.mpg 文件的时间戳。
从我的搜索来看,看起来我需要使用touch -r一些带有替换的正则表达式来处理这个问题。
我是否在正确的轨道上,是否有人对我需要如何做正则表达式(我的正则表达式知识,不好,不好,不好)有什么建议来处理这个问题?
我使用 wget 从 FTP 服务器获取文件。我这样做:
wget ftp://username:Password@XXX.XXX.XX.XX/public_html/images/audiothumbs/* .
Run Code Online (Sandbox Code Playgroud)
下载大约 1600 个文件后,出现此错误:
--2010-09-07 01:36:51-- http://./
Resolving .... failed: Name or service not known.
wget: unable to resolve host address `.'
FINISHED --2010-09-07 01:36:52--
Downloaded: 1998 files, 20M in 3m 31s (95.7 KB/s)
Run Code Online (Sandbox Code Playgroud)
我是否与其他服务器断开连接?
其次,如果像这样使用 no-clobber 选项:
wget -r -nc ftp://username:Password@XXX.XXX.XX.XX/public_html/images/audiothumbs/* .
Run Code Online (Sandbox Code Playgroud)
为什么它的文件仍然被覆盖?
感谢大家的帮助
我尝试从以下字符串(使用创建who am i)中提取主机名:
username pts/0 2010-10-05 17:30 (www.example.com)
Run Code Online (Sandbox Code Playgroud)
我需要一个解决方案,如果 (www.example.com) 不存在(当我在本地登录时就是这种情况),它也可以工作。此外,该解决方案还必须在who am i返回以下字符串的 Mac 上运行:
username ttys006 Oct 5 16:47 (www.example.com)
Run Code Online (Sandbox Code Playgroud)
问题是 mac 在日期中放置了空格,这使得它难以使用cut。我认为,必须有一个sed用于提取子字符串的解决方案,但是我在弄清楚如何正确使用时遇到了问题sed。
更新:疯狂的方法
这种方法只有在实际存在括号时才有效。如果不是,则会发生以下情况:
$ who am i | cut -f2 -d '(' | tr -d ')'
username ttys006 Oct 5 16:47
Run Code Online (Sandbox Code Playgroud)