linux复制文件夹实现方法linux操作系统
“CommonK”通过精心收集,向本站投稿了9篇linux复制文件夹实现方法linux操作系统,下面是小编为大家整理后的linux复制文件夹实现方法linux操作系统,供大家参考借鉴,希望可以帮助到有需要的朋友。
篇1:linux复制文件夹实现方法linux操作系统
下面我们来介绍linux中两个命令来复制文件夹,有需要的朋友可参考参考,
Linux复制整个文件夹的文件要使用 -Rf
CP命令格式: CP [选项] 源文件或目录 目的文件或目录选项说明:
-b 同名,备分原来的文件
-f 强制覆盖同名文件
-r 按递归方式保留原目录结构复制文件cp
-r /tmp/a
/root/a记得有空格
我们还可以使用Rf命令来实例
代码如下复制代码sudo cp -Rf 下载/Discuz/discuz /var/www/discuz
注意在复制后文件的属性:
使用:
代码如下复制代码chmod 777 -Rf /var/www/discuz
篇2:linux复制文件夹与文件实例介绍linux操作系统
本文章来介绍一下关于linux复制文件夹与文件的一些基础用法,有需要学习的朋友可参考一下本文章,
CP命令
格式: CP [选项] 源文件或目录 目的文件或目录
选项说明:-b 同名,备分原来的文件
-f 强制覆盖同名文件
-r 按递归方式保留原目录结构复制文件
cp -r /tmp/a /root/a
例
.复制文件,只有源文件较目的文件的修改时间新时,才复制文件
cp -u -v file1 file2
.将文件file1复制成文件file2
cp file1 file2
.采用交互方式将文件file1复制成文件file2
cp -i file1 file2
.将文件file1复制成file2,因为目的文件已经存在,所以指定使用强制复制的模式
cp -f file1 file2
.将目录dir1复制成目录dir2
cp -R file1 file2
.同时将文件file1、file2、file3与目录dir1复制到dir2
cp -R file1 file2 file3 dir1 dir2
.复制时保留文件属性
cp -p a.txt tmp/
.复制时保留文件的目录结构
cp -P /var/tmp/a.txt ./temp/
.复制时产生备份文件
cp -b a.txt tmp/
.复制时产生备份文件,尾标 ~1~格式
cp -b -V t a.txt /tmp
.指定备份文件尾标
cp -b -S _bak a.txt /tmp
复制文件不提示
# vi ~/.bashrc
如果你看到如下内容,以下命令都会用别名执行了,就是说自动加了 -i 参数
alias rm=’rm -i’
alias cp=’cp -i’
alias mv=’mv -i’
为了让复制和移动大量文件去覆盖目标时,不会产生一个个的提示,命令应该这样写
# cp -rf /home/huzs.net/* /www/huzs.net/
注意 cp 命令前加了 ,意思是不让它用~/.bashrc里的别名运行,即 -i 参数
cp命令
功能:将给出的文件或目录拷贝到另一文件或目录中,就如同DOS下的copy命令一样,功能非常强大,
语法:cp [选项] 源文件或目录 目标文件或目录
说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。
篇3:python数组复制拷贝的实现方法
作者:pythoner 字体:[增加 减小] 类型:
这篇文章主要介绍了python数组复制拷贝的实现方法,实例分析了Python数组传地址与传值两种复制拷贝的使用技巧,需要的朋友可以参考下
本文实例讲述了python数组复制拷贝的实现方法,分享给大家供大家参考。具体分析如下:
python中直接通过等号赋值实际上只是引用地址的传递
如:
a = [1,2,3,4,5]b=a
当a的值改变时,b的值也会随之改变
如果希望b和a没有关系,可以通过下面的方法
a = [1,2,3,4,5]b=a[:]
这样a和b就是两个完全独立的数组,互相不会影响
希望本文所述对大家的Python程序设计有所帮助,
篇4:linux监控程序程序自动重启实现方法linux操作系统
本文章给大家介绍linux监控程序实现程序自动重启方法与原因,有需要了解的同学可参考,
如果是简单的手机重启我们可如下操作
----Linux 重启命令----
1、shutdown
2、poweroff
3、init
4、reboot
5、halt
这里我们就不介绍了,因为我主要是讲自动重启实现方法
使用脚本实现自动重启
首先想到的最简单的使用shell脚本,大概思路:
ps -ef | grep “$1″ | grep -v “grep” | wc –l 是获取 $1 ($1 代表进程的名字)的进程数,脚本根据进程数来决定下一步的操作。通过一个死循环,每隔 1 秒检查一次系统中的指定程序的进程数,这里也可使用crontab来实现。
这种方法比较土,还是可以基本解决问题,但是有1s的延迟,笔者在应用中未采用这种方法,有关这个shell脚本,请参看文章后面的附件代码。
exec+fork方式
笔者最终采用的exec+fork方式来实现的,具体思想如下:
1,exec函数把当前进程替换为一个新的进程,新进程由path或file参数指定。可以使用exec函数将程序的执行从一个程序切换到另一个程序;
2,fork函数是创建一个新的进程,在进程表中创建一个新的表项,而创建者(即父进程)按原来的流程继续执行,子进程执行自己的控制流程;
3,wait 当fork启动一个子进程时,子进程就有了它自己的生命周期并将独立运行,我们可以在父进程中调用wait函数让父进程等待子进程的结束;
相信介绍到这里,读者已经能够想到解决方法了:1)首先使用fork系统调用,创建子进程,2)在子进程中使用exec函数,执行需要自动重启的程序,3) 在父进程中执行wait等待子进程的结束,然后重新创建一个新的子进程。
使用方法:
代码如下复制代码#./portmap 需要监控的程序的路径
#args portmap 需要的参数
$ ./supervisor ./portmap args.....代码如下:
/**
*
* supervisor
*
* author: liyangguang (liyangguang@software.ict.ac.cn)
*
* date: -01-21 21:04:01
*
* changes
* 1, execl to execv
*/
#include
#include
#include
#include
#include
#include
#include
int
main(int argc, char **argv)
{
int ret, i, status;
char *child_argv[100] = {0};
pid_t pid;
if (argc < 2) {
fprintf(stderr, “Usage:%s
return -1;
}
for (i = 1; i < argc; ++i) {
child_argv[i-1] = (char *)malloc(strlen(argv[i])+1);
strncpy(child_argv[i-1], argv[i], strlen(argv[i]));
child_argv[i-1][strlen(argv[i])] = '';
}
while(1){
pid = fork;
if (pid == -1) {
fprintf(stderr, “fork() error.errno:%d error:%sn”, errno, strerror(errno));
break;
}
if (pid == 0) {
ret = execv(child_argv[0], (char **)child_argv);
//ret = execl(child_argv[0], “portmap”, NULL, 0);
if (ret < 0) {
fprintf(stderr, “execv ret:%d errno:%d error:%sn”, ret, errno, strerror(errno));
continue;
}
exit(0);
}
if (pid > 0) {
pid = wait(&status);
fprintf(stdout, “wait return”);
}
}
return 0;
}
shell脚本方式的代码如下:
代码如下复制代码# 函数: CheckProcess
# 功能: 检查一个进程是否存在
# 参数: $1 --- 要检查的进程名称
# 返回: 如果存在返回0, 否则返回1.
#------------------------------------------------------------------------------
CheckProcess()
{
# 检查输入的参数是否有效
if [ “$1” = “” ];
then
return 1
fi
#$PROCESS_NUM获取指定进程名的数目,为1返回0,表示正常,不为1返回1,表示有错误,需要重新启动
PROCESS_NUM=`ps -ef | grep “$1” | grep -v “grep” | wc -l`
if [ $PROCESS_NUM -eq 1 ];
then
return 0
else
return 1
fi
}
# 检查test实例是否已经存在
while [ 1 ] ; do
CheckProcess “test”
CheckQQ_RET=$?
if [ $CheckQQ_RET -eq 1 ];
then
# 杀死所有test进程,可换任意你需要执行的操作
killall -9 test
exec ./test &
fi
sleep 1
done
篇5:Linux 删除乱码文件与文件夹(支持批量)方法linux操作系统
Linux 有时候会产生一些乱码文件名,这些文件大小为0,而且删除的时候总是打不了名字,所以需要通过节点来删除,具体删除方法如下:
1. 查询inode :
代码如下复制代码[oracle@test]$ ll -i
total 14694452
17956913 -rw-r–r– 1 oracle oinstall 0 Jan 18 20:24 1?.txt
2. 修改测试文件名:
代码如下复制代码find . -inum 17956913 -exec mv {} file.txt ;3. 删除乱码文件
代码如下复制代码[oracle@test]$ ll -itotal 14694452
….
-rw-r–r– 1 oracle oinstall 0 Jan 18 20:24 file.txt
记录:删除乱码的文件可使用 find . -inum 17956913 -exec rm {} ;
文件夹
对于文件夹,尤其是非空的文件夹,上面的方法就不适用了,要用到另外的参数来实现,首先相同的是查看乱码文件夹的节点号
代码如下复制代码ls -i
18612483 瑗块.?.. - Thank you, Love(128kbps) 2011.06.22
接下来使用find命令删除
代码如下复制代码find -inum 18612483 -exec rm -rf {} ;
find: ./瑗块.?.. - Thank you, Love(128kbps) 2011.06.22: No such file or directory
虽然提示我们找不到此文件或文件夹,但其实已经表明删除了,
Linux 删除乱码文件与文件夹(支持批量)方法linux操作系统
,
-exec作用是查找后执行命令,其中{}代表前面查询到的结果,空格+;是结束符,其它就不说了。-exec后可以跟任何常用命令,因此这方法不但适用于文件夹,文件也可以。
小技巧
怎么批量删除呢?其实很简单,用for就好了
代码如下复制代码文件
for n in 22413315 22413314;do find -inum $n -delete;done
文件夹
for n in 22413315 22413314;do find -inum $n -exec rm -rf {} ;;done
$n是变量名,与for后面定义的一致,其它没啥好说的,适用其它操作。
篇6:Linux中RM快速删除大量文件/文件夹方法linux操作系统
删除文件直接使用rm就可以删除文件了,删除目录了可以使用rm来删除,下面我们一起来看看Linux中RM快速删除大量文件/文件夹方法.
昨天遇到一个问题,在Linux中有一个文件夹里面含有大量的Cache文件(夹),数量级可能在百万级别,使用rm -rf ./* 删除时间慢到不可接受,Google了一下,查到了一种方法,试用了下确实比单纯使用rm快了一个数量级,
方法见下:
1)首先建立一个空白文件夹。
mkdir /tmp/www.111cn.net
2)之后使用以下语句即可快速的删除文件。
rsync --delete-before -d /tmp/www.111cn.net/ /the/folder/you/want/delete/
原文中说不要忘记文件夹后的“/”
3)一杯咖啡过后,就Ok了。
篇7:python通过shutil实现快速文件复制的方法
作者:niuniu 字体:[增加 减小] 类型:
这篇文章主要介绍了python通过shutil实现快速文件复制的方法,涉及Python中shutil模块的使用技巧,需要的朋友可以参考下
本文实例讲述了python通过shutil实现快速文件复制的方法,分享给大家供大家参考。具体如下:
python通过shutil实现快速文件拷贝,shutil使用起来非常方便,可以通过pip install shutil安装
from shutil import *from glob import globprint ‘BEFORE:‘, glob(‘shutil_copyfile.*‘)copyfile(‘sharejs.com.py‘, ‘sharejs.com.py.copy‘)print ‘AFTER:‘, glob(‘shutil_copyfile.*‘)
上面这段python代码用于将文件 sharejs.com.py 拷贝到sharejs.com.py.copy
希望本文所述对大家的Python程序设计有所帮助,
篇8:linux tar实现分卷压缩与还原数据方法 linux操作系统
linux tar实现分卷压缩与还原数据方法 有需要的朋友可参考一下,
.分卷压缩
tar cvzpf - eclipse | split -d -b 50m
上面的命令是将eclipse这个文件夹分卷压缩,每卷50m,注意eclipse 前面有空格.压缩完之后,会被命名为x00,x01,x02,
。。
2.解压
首先需要合并:
合并的命令是: cat x*>eclipse.tar.gz
然后解压:tar xzvf eclipse.tar.gz
篇9:linux中VPS自动备份数据库实现方法linux操作系统
这是我的自动备份数据库 SHELL 脚本, 它将在 VPS 服务器上运行, 导出数据库后压缩成包, 然后通过 scp 命令将压缩包备份到另一台服务器( x4100 ) 中.
代码如下复制代码#!/bin/bash
D=“/root/backup”
T=`date +%Y%m%d`
if [ ! -d “${D}/${T}” ]; then
/bin/mkdir “${D}/${T}”
fi
/usr/local/mysql/bin/mysqldump --host=localhost --user=root --password=数据库密码 要备份的数据库名 > “${D}/${T}/${T}.sql”
cd ${D}
/bin/tar -czf “${D}/${T}.tar.gz” “${T}”
/usr/bin/scp “${D}/${T}.tar.gz” kuco@x4100.unix-center.net:~/web_backup/studyday.net
2, 设置 Crontab , 更多的 crontab 介绍在这里
代码如下复制代码crontab -e
30 04 * * * /bin/sh /root/backup/web_backup.sh
3, 可能会遇到的问题:
在 STEP 1 中 scp 远程复制命令时会遇到输入密码的提示, 如果没有密码输入, 会导致复制不成功. 通过百度找到了解决的办法.
1, 在 VPS 服务器上的 ~/.ssh/ 目录下生成密钥文件:
代码如下复制代码mkdir -p ~/.sshssh-keygen -t rsa -P “” -f ~/.ssh/id_rsa
2, 在 x4100 服务器上配置:
代码如下复制代码mkdir -p ~/.sshtouch ~/.ssh/authorized_keys
3, 将 VPS 服务器的 ~/.ssh/id_rsa.pub 内容追加到 x4100 服务器的 ~/.ssh/authorized_keys 里面
这样就可能在调用 scp 命令时没有密码输入提示了.
【linux复制文件夹实现方法linux操作系统】相关文章:
5.linux下使用rsync实现文件目录同步linux操作系统
8.Windows创建.htaccess文件方法总结Windows服务器操作系统






文档为doc格式