结构如下
ravas@ravas-desk-lmde /var/lib $ pwd
/var/lib
ravas@ravas-desk-lmde /var/lib $ ls -l | grep mysql
drwx------ 13 mysql mysql 4096 Feb 10 22:32 mysql
Run Code Online (Sandbox Code Playgroud)
当我尝试进入/ var/lib/mysql时,我没有权限
ravas@ravas-desk-lmde /var/lib $ cd mysql/
bash: cd: mysql/: Permission denied
Run Code Online (Sandbox Code Playgroud)
虽然我属于mysql组
ravas@ravas-desk-lmde /var/lib $ groups ravas
ravas : ravas adm dialout cdrom floppy sudo audio dip video plugdev lpadmin sambashare mysql
Run Code Online (Sandbox Code Playgroud)
这有什么问题?
我想将$home作为运行rsync时要排除的目录列表传递。文件:
cat backup_system.sh
#!/bin/bash
set -x
home=''
home=$home'"/home/ravas/Documents/*"',
home=$home'"/home/ravas/Downloads/*"',
home=$home'"/home/ravas/pCloudDrive/*"',
home=$home'"/home/ravas/pCloudLocal/*"',
home=$home'"/home/ravas.old/*"'
echo $home
sudo rsync -aAXv / --exclude={$home,"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /run/media/ravas/system_backup
Run Code Online (Sandbox Code Playgroud)
备份在没有$home变量的情况下运行良好,但如果我添加它,它不会产生任何效果。
输出的最后两行显示$home中列出的目录未使用--exclude扩展,而其他目录则扩展。
不用说,我不太擅长 bash,任何帮助将不胜感激!
./backup_system.sh
+ home=
+ home='"/home/ravas/Documents/*",'
+ home='"/home/ravas/Documents/*","/home/ravas/Downloads/*",'
+ home='"/home/ravas/Documents/*","/home/ravas/Downloads/*","/home/ravas/pCloudDrive/*",'
+ home='"/home/ravas/Documents/*","/home/ravas/Downloads/*","/home/ravas/pCloudDrive/*","/home/ravas/pCloudLocal/*",'
+ home='"/home/ravas/Documents/*","/home/ravas/Downloads/*","/home/ravas/pCloudDrive/*","/home/ravas/pCloudLocal/*","/home/ravas.old/*"'
+ echo '"/home/ravas/Documents/*","/home/ravas/Downloads/*","/home/ravas/pCloudDrive/*","/home/ravas/pCloudLocal/*","/home/ravas.old/*"'
"/home/ravas/Documents/*","/home/ravas/Downloads/*","/home/ravas/pCloudDrive/*","/home/ravas/pCloudLocal/*","/home/ravas.old/*"
+ sudo rsync -aAXv /
'--exclude="/home/ravas/Documents/*","/home/ravas/Downloads/*","/home/ravas/pCloudDrive/*","/home/ravas/pCloudLocal/*","/home/ravas.old/*"'
'--exclude=/dev/*' '--exclude=/proc/*' '--exclude=/sys/*' '--exclude=/tmp/*' '--exclude=/run/*' '--exclude=/mnt/*' '--exclude=/media/*' --exclude=/lost+found** /run/media/ravas/system_backup
Run Code Online (Sandbox Code Playgroud) 对于在debian计算机中使用apache服务器运行的php应用程序,我有以下文件结构.
/var/www/project/
|-- index/index.php
|-- local
|-- view
| `-- *.php
|-- model
| `-- *.php
|-- controller
| `-- *.php
|-- supportfiles
|-- css
| `-- *.css
|-- javascript
`-- *.js
. . .
Run Code Online (Sandbox Code Playgroud)
我已经配置了apache,所以当我在浏览器中输入http:// localhost时,apache会加载/var/www/project/index/index.php.
为此,我更改了两个文件
/etc/apache2/sites-available/000-default.conf
Run Code Online (Sandbox Code Playgroud)
我设置的地方
DocumentRoot /var/www/project/index/
Run Code Online (Sandbox Code Playgroud)
和文件
/etc/apache2/apache2.conf
Run Code Online (Sandbox Code Playgroud)
我也在哪里设置
<Directory /var/www/project/index/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)
这种更改似乎工作正常,因为http:// localhost加载位于/ var/www/project/index目录中的目标index.php文件; 但是,我无法加载以下的java脚本文件
<!-- <script language="JavaScript" src="../local/supportfiles/javascript/validation.js"></script> -->
Run Code Online (Sandbox Code Playgroud)
这里有什么问题?我猜测问题是apache无法访问/var/www/project/supportfiles/javasecript/*.js.原始的apache配置(其中apache根目录是/ var/www /并且必须通过键入http:// localhost/project/index来加载index.php文件)通常会加载java脚本文件.
解决方案是使用replace()两次:
import pandas as pd
s = pd.Series([True, False, False])
s = s.replace(False, "A")
s = s.replace(True, 'B')
Run Code Online (Sandbox Code Playgroud)
然后,
Out[1]:
0 B
1 A
2 A
Run Code Online (Sandbox Code Playgroud)
是否有更优雅的方式来实现这一目标?