install 命令用法詳解
http://man.linuxde.net/install
install命令的作用是安裝或升級軟件或備份數據,它的使用權限是所有用戶。install命令和cp命令類似,都可以將文件/目錄拷貝到指定的地點。
但是,install允許你控制目標文件的屬性。
install通常用於程序的makefile,使用它來將程序拷貝到目標(安裝)目錄 make install
語法
install [OPTION]... [-T] SOURCE DEST install [OPTION]... SOURCE... DIRECTORY install [OPTION]... -t DIRECTORY SOURCE... install [OPTION]... -d DIRECTORY...
在前兩種格式中,會將<來源>復制至<目的地>或將多個<來源>文件復制至已存在的<目錄>,同時設定權限模式及所有者/所屬組。
在第三種格式中,會創建所有指定的目錄及它們的主目錄。
長選項必須用的參數在使用短選項時也是必須的。
選項
--backup[=CONTROL]:為每個已存在的目的地文件進行備份。 -b:類似 --backup,但不接受任何參數。 -c:(此選項不作處理)。 -d,--directory:所有參數都作為目錄處理,而且會創建指定目錄的所有主目錄。 -D:創建<目的地>前的所有主目錄,然后將<來源>復制至 <目的地>;在第一種使用格式中有用。 -g,--group=組:自行設定所屬組,而不是進程目前的所屬組。 -m,--mode=模式:自行設定權限模式 (像chmod),而不是rwxr-xr-x。 -o,--owner=所有者:自行設定所有者 (只適用於超級用戶)。 -p,--preserve-timestamps:以<來源>文件的訪問/修改時間作為相應的目的地文件的時間屬性。 -s,--strip:用strip命令刪除symbol table,只適用於第一及第二種使用格式。 -S,--suffix=后綴:自行指定備份文件的<后綴>。 -v,--verbose:處理每個文件/目錄時印出名稱。 --help:顯示此幫助信息並離開。 --version:顯示版本信息並離開。
實例
install -d [option] DIRECTORY [DIRECTORY...]
支持多個,類似mkdir -p支持遞歸。
例如:install -d a/b/c e/f結果和mkdir -p a/b/c e/f一樣。
install [option] SOURCE DEST
復制SOURCE文件(測試不能是目錄)到DEST file(文件):
install a/e c 結果類似: cp a/e c #注意c必須是文件。
有用選項-D:
install -D x a/b/c 效果類似: mkdir -p a/b && cp x a/b/c
install [option] SOURCE [SOURCE...] DIRECTORY
復制多個SOURCE文件到目的目錄:
install a/* d 其中d是目錄。
另一個實例
#!/bin/sh
# by yangkun - -
passwd=`date +%s|sha256sum|head -c 16`
yum install -y vsftpd db4-utils
echo -e "ftpuser\n$passwd" > /etc/vsftpd/vuser
db_load -T -t hash -f /etc/vsftpd/vuser /etc/vsftpd/vuser.db
cat > /etc/pam.d/vsftpd.vu << 'EOF'
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
EOF
sed -i 's/anonymous_enable=YES/anonymous_enable=NO/g' /etc/vsftpd/vsftpd.conf
sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/g' /etc/vsftpd/vsftpd.conf
sed -i 's/pam_service_name=vsftpd/pam_service_name=vsftpd.vu/g' /etc/vsftpd/vsftpd.conf
cat >> /etc/vsftpd/vsftpd.conf << 'EOF'
guest_enable=YES
guest_username=www
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vconf
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
EOF
install -m755 -o www -g www -d /etc/vsftpd/vconf
##判斷www用戶的家目錄是否創建,如果不創建的話,ftp賬號無法登陸
if [ ! -d /home/www ];then
install -m755 -o www -g www -d /home/www/
fi
cat > /etc/vsftpd/vconf/ftpuser << 'EOF'
local_root=/data/www
local_umask=022
idle_session_timeout=600
data_connection_timeout=120
EOF
service vsftpd start
echo -e "The FTP username is ftpuser\nThe FTP password is $passwd"
install -m755 -o www -g www -d /etc/vsftpd/vconf 設置權限為755 ,屬主和屬組都是www ,創建 /etc/vsftpd/vconf
f
