linux比较两个文件的不同_linux比较两个文件大小
2025-04-08 13:00 - 立有生活网
在linux下,对比两个文件的时间,哪个更新,用c写个吧。例如,文件A的mtime是19901220122222 到秒。
在linux中输入cd /命令,进入Linux的根目录下。时间通过一个约定的类型time_t处理,这是一个大到可以容纳以秒计算日期和时间的整数类型。在linux系统中,它是一个长整形,即使是32位长整型,也可以用到2038年。到那时我们希望使用64位的系统解决这个问题。
linux比较两个文件的不同_linux比较两个文件大小
linux比较两个文件的不同_linux比较两个文件大小
#include
#include
int main(int argc,char argv[])
{if(argc!=3)
{fprintf(stderr,"usage: %s
exit(1);
}struct stat bufdone1;
struct stat buf2;
if(lstat(argv[1],&buf1)<0 || lstat(argv[2],&buf2)<0)
{perror("lstat error");
exit(2);
}/ print time /
printf("%s: %ld %s: %ldn",argv[1],buf1.st_mtime,argv[2],buf2.st_mtime);
/ print time difference /
printf("%ldn",buf1.st_mtime-buf2.st_mtime);
return 0;
}
请问各位linux高手们,/etc/目录下的profile与bashrc两个文件有什么区别? 请告诉,谢谢。
仔细观察/usr目录,你会发现这个目录下面也有bin和in等一些根目录下的目录。usr不是user的缩写,而是unix software resource的缩写,里面存放的都是用户后来安装的软件我只知道bashrc是会影响你的终端启动参数的。你可以写一些脚本放到这里,然后你启动flag=0终端后就会自动执行。很多程序的环境变量都需要写到bashrc这个文本里。
我只知道bashrc是会影响你的终端启动参数的。你可以写一些脚本放到这里,然后你启动终端后就会自动执行。很多程序的环境变量都需要写到bashrc这个文本里。
bashrc用于交互式non-loginshell,而profile用于交互式login shell
/etc/profile:为系统的每个用户设置环境信息,当一个用户登录时,该文件被执行
/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。也就是说,当用户shell执行了bash时,运行这个文件
/etc/profile:此文件为系统的每个用户设置环境信息,当用户次登录时,该文件被执行.
/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
简单点应该是profile是全局变量,开机的时候就会调用的,.bashrc是你所使用用户的变量,只有你登录相应用户的时候才会调用
profile是每次系统登陆的时候家在的 bashrc只要新开一个窗口都会加载
/etc/profile:此文件为系统的每个用户设置环境信息,当用户次登录时,该文件被执行,并从/etc/profile.d目录的配置文件中搜集shell的设置,
/etc/bashrc:为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取。
~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。
~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取。
另外,站长团上有产品团购,便宜有保证
给你几个用户配置参数全的吧。
/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc很容易混淆,他们之间有什么区别?它们的作用到底是什么?
/etc/profile: 用来设置系统环境参数,比如$PATH. 这里面的环境变量是对系统内所有用户生效的。
/etc/bashrc: 这个文件设置系统bash shell相关的东西,对系统内所有用户生效。只要用户运行bash命令,那么这里面的东西就在起作用。
~/.bash_profile: 用来设置一些环境变量,功能和/etc/profile 类似,但是这个是针对用户来设定的,也就是说,你在/home/user1/.bash_profile 中设定了环境变量,那么这个环境变量只针对 user1 这个用户生效.
~/.bashrc: 作用类似于/etc/bashrc, 只是针对用户自己而言,不对其他用户生效。
另外/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系.
~/.bashrc 是交互式 non-login 方式进入 bash 运行的,用户不一定登录,只要以该用户身份运行命令行就会读取该文件。
diff命令 文件比较如何忽略行数不一致的问题
#如果没有md5sum可以用openssl md5代替mkdir ~/{source,patch}
#includecp a ~/source/a
cp b ~/patch/a
diff -u ~/source/a ~/patch/a
linux 使用的是GNU版的diff, -u的意思是合并这两个文件。要让diff让为这两个文件是一样的,重命名为相同的文件名即可,这样就不能把这两文件放在同一个目录下,得分开它俩。
如何进入Linux根目录??
#创建备份目录用LINUX SHELL命令。
[-bBi]以下是最常用的几个目录的写法:
1、/ 代表根目录
4、~ 当前用户的默认工作目录
注:目录可以省略不写, 与cd ~ 有相同的效果。
扩展资料:Linux Shell常用shell命令
Linux Shell常用shell命令
1、ls命令
功能:显示文件和目录的信息
ls以默认方式显示当前目录文件列表
ls -a 显示所有文件包括隐藏文件
ls -l 显示文件属性,包括大小,日期,符号连接,是否可读写及是否可执行
ls -lh 显示文件的大小,以容易理解的格式印出文件大小 (例如 1K 234M2G)
ls -lt 显示文件,按照修改时间排序
2、cd命令
功能:改名目录
cd dir切换到当前目录下的dir目录
cd /切换到根目录
cd ..切换到到上一级目录
cd ~切换到用户目录,比如是root用户,则切换到/root下
3、cp命令
功能:copy文件
cp source target将文件source为target
cp /root /source.将/root下的文件source到当前目录
cp – soure_dir target_dir将整个目录,两目录完全一样
4、rm命令
功能:删除文件或目录
rm file删除某一个文件
rm -f file 删除时候不进行提示。可以于r参数配合使用
rm -rf dir删除当前目录下叫dir的整个目录
5、mv命令
功能:将文件移动走,或者改名,在uinx下面没有改名的命令,如果想改名,可以使用该命令
mv source target将文件source更名为target
6、diff
功能:比较文件内容
diff dir1 dir2比较目录1与目录2的文件列表是否相同,但不比较文件的实际内容,不同则列出
diff file1 file2比较文件1与文件2的内容是否相同,如果是文本格式的文件,则将不相同的内容显示,如果是二进制代码则只表示两个文件是不同的
comm file1 file2比较文件,显示两个文件不相同的内容
Linux shell命令用法:
cd “你想要进的目录” //如果想要进的目录中目录名称中含有空格、中文或其它特殊字符时用双引号包括。
以下为最常用的几个目录的写法:
1、/ 代表根目录
4、~ 当前用户的默认工作目录
5、目录可以省略不写, 与cd ~ 有相同的效果
扩展资料:
1、cd :切换目录
用法:cd
cd ../ 切换到上级目录
cd ~ (或只有cd )切换到当前用户主目录(home底下以用户名命名的文件夹) /root目录
mkdir 创建目录
mkdir 目录名 -p 递归创建目录
2、rmdir 删除空目录
用法:rmdir 目录名
也可用:rm -rf 目录名
3、ls 查看目录或文件信息
主要选项:
-l 列出目录或者文件的详细信息。比如权限、修改时间等等
-a 列出当前目录下所有文件,包括隐藏文件(已点开头的都是隐藏文件)
使用LINUX cd命令,使用cd /进入根目录。
cd “你想要进的目录” 当目录名称中含有空格、中文或其它特殊字符时请用双引号包括
以下是最常用的几个目录的写法:
/ 代表根目录
. 当前目录
.. 上级目录
~ 当前用户的默认工作目录,如果目录省略不写, 与cd ~ 有相同的效果进入默认工作目录
LINUX SHELL命令
用法
以下是最常用的几个目录的写法:
/ 代表根目录
. 当前目录
.. 上级目录
~ 当前用户的默认工作目录
目录可以省略不写, 与cd ~ 有相同的效果
所有的文件都是放在/ 根目录上的,你可以把他想成是一个电脑的硬盘
然后通过分区,划出了/home, swap,/etc,/opt等目录
Linux 里有/lib和/usr/lib,这两个目录下的库文件有什么区别吗?如果没区别为什么又要分开放呢
cd / 切换到根目录/lib-----系统本身自带的库存放处%ns
/usr/lib-----安装完成后用户自己安装的库文件的存放处
linux shell 怎样比较两个数组的内容,并且把不同的部分输出
Linux常用命令:unset 不能这么用,需要指定数组索引,也各个目录有他个子的含义,/home一般存放用户的个人文件就是数组下标,而不是数组的值,你可以这样干:
#check if there are any files added
folder_list=(1 2 3 4 5)
file_list=(1 2)
declare -a result_list
t=0
echo folder_list=${folder_list[]}
echo file_list=${file_list[]}
for m in "${folder_list[@]}"
do
for l in "${file_list[@]}"
do
if [ "$m" == "$l" ]; then
flag=1
break
fi
if [ $flag -eq 0 ]; then
result_list[t]=$m
t=$((t+1))
else
fi
echo result_list=${result_list[]}
弄个结果数组保存结果,把在file_list里找不到的folder_list值存到结果数组中。
循环比较目录中的多个文件,当两个文件某个内容相同的就移除这两个,继续比对,LinuxSHELL脚本怎么写?
cd ../..切换到上二级目录#!/bin/bash
if [ ! -e /opt/backup ];then
mkdir $BACKUP;
fi
#设定目录及文件
BACKUP=/opt/backup
SRC=/test一、文件、目录作命令
HASHFILE=/opt/backup/hashfile.txt
REPEATHASH=/opt/backup/repeathash.txt
#给所有文件生成hash值
find $SRC -type f -exec md5sum {} ; > $HASHFILE
#查询重复的hash值
find $SRC -type f -exec md5sum {} ;|awk '{print $1}' |sort |uniq -c |awk '{if($1>1)print $2}' > $REPEATHASH
#find $SRC -type f -exec openssl md5 {} ;|awk '{print $2}'|sort |uniq -c |awk '{if($1>1)print $2}' > $REPEATHASH
#查询hash有重复的文件并move到备份目录
for HASH1 in `cat $REPEATHASH`;do
mv `grep $HASH1 $HASHFILE |awk '{print $2}'` $BACKUP
done;
linux下的patch命令
估计你执行 patc用法:h 的源文件和你svn里的revision 1880 在 1done #for command ;do command ; done的循环到此结束。7 行附近不匹配。
另外,确认一下 com/cdp/platform/webadmin/taglib/MenuTag.ja 和你 svn 里的同一文件匹配。
linux shell 编程如何实现两个文件的同步。
删除,因为是删除,所以d后面通常不接任何参数Linux系统下实现文件同步的shell脚本,代码如下:
#!/bin/bash
mount /dev/hda6 /mnt/d 2>/dev/null ; unalias rm cp
rm /share/c/app/o /share/c/tmp/o /share/c/app/core /share/c/tmp/core /share/c/app/a.out /share/c/tmp/a.out
find /share -print >/tmp/.share_
#把/sha#比较两个文件里/tmp.d_ 与/tmp./share_的不同。re的所有文件的全名保存到/tmp/.share_
find /mnt/d/share -print |sed 's///mnt//d//g' >/tmp/.d_
chmod 700 /tmp/.share_ /tmp/.d_
count=0
for i in $(comm -23 /tmp/.d_ /tmp/.share_) ; do
echo "/mnt/d$i"
rm "/mnt/d$i" ; count=$((count+1))
#删除/mnt/d/share/里的多余的文件和计数。
echo "del $count file at /mnt/d/share/"
find /mnt/d/share -print |sed 's///mnt//d//g' >/tmp/.d_ ; count=0
#重新获得文件的全名。初始化计数器。
for i in $(comm -23 /tmp/.share_ /tmp/.d_) ; do
echo $i
cp $i "/mnt/d$i" ; count=$((count+1))
#备份/share里新增加的文件到/mnt/d/share,同时计数。
echo "already copied $count file from /share to /mnt/d/share " ;sync
umount /mnt/d 2>/dev/null
给个我自己的方向给你,如果你AB2个文件夹都相同的话
DIRA=`ls -l A | awk '{print $6}' | sort` //看A目录下文件时间,并排序,把内容赋值到变量DIRA
DIRB=`ls -l B | awk '{print $6}' | sort` //看A目录下文件时间,并排序,把内容赋值到变量DIRB
diff $DIRA $DIRB | grep “<" //对比2个文件。
然后进行处理,需要弄一个shell程序,然后放在crontab里面执行。
具体你自己琢磨。
没有其它特殊需求的话,下面这一行命令就能完成你的工作
rsync -z /yourpath/A /yourpath/B
有空可以man rsync一下
man rsync 看看它的帮助
黑莓当蓝牙键盘(黑莓蓝牙键盘功能)

想买个键盘给手机用,有没有这种产品? 有,一般的键盘都能用,关键是你手机得支持OTG,把键盘接收器插在OTG线上就能用了。 黑莓当蓝牙键盘(黑莓蓝牙键盘功能) 黑莓当蓝牙键盘(黑莓蓝牙键盘···
母亲节的简笔画 母亲节的简笔画彩色

母亲节的花束怎么画 母亲节简笔画8 母亲节可以画康乃馨,因为康乃馨的花语表达了对母亲的爱。接下来分享康乃馨的两种画法。 母亲节的简笔画 母亲节的简笔画彩色 母亲节的简笔画 母亲节的简···
宠物小精灵xy&z 宠物小精灵xyz全集

口袋妖怪“xy洛托姆”怎么改变形态? 在中间的大城市博士的研究所2楼调查右下角的纸箱就可以变形。 宠物小精灵xyamp;z 宠物小精灵xyz全集 宠物小精灵xyz 宠物小精灵xyz全集 配我现在只想说一句,···