linux文件大于
A. linux文件名的长度不能超过多少个字符
题主你好,
这个长度不是绝对的, 但大多数的linux系统:
文件名长度限制是255个字符;
路径名长度限制是4096个字符;
-----
具体情况题主可以在自己电脑上执行以下两个命令看一下自己本地的linux系统这两个长度情况:
文件名最大长度: getconf NAME_MAX /
路径名最大长度: getconf PATH_MAX /
我电脑上的情况:
-----
另外,这个信息其实都在linux一个名叫limits.h的头文件中写着呢, 有兴趣的话,题主自己可以找一下:
find /usr | grep limits.h | xargs -I {} grep -H 'NAME_MAX' {}
find /usr | grep limits.h | xargs -I {} grep -H 'PATH_MAX' {}
=====
希望可以帮到题主, 欢迎追问.
B. 怎么样查看linux下占用空间最大的文件
1请自行下载安装SSH远程软件
通过SSH远程登录你的linux服务器
2是linux下用看查看磁盘的命令
下面我们先一个目录的来查看空间占用情况
-sh /* 先看看根目录下面
3我们发现/usr目录占用空间最大
4接着我们看usr目录
-sh /usr/*
5我们这里可以看到usr目录下的local里面占用空间最大了
6没错我们接着看/usr/local
-sh /usr/local/ *
7最后我们发现local里面的mysql文件最大了
都600M+
不过没有办法我们需要mysql
8是不是简单的样子的
找到最大的;删除不用的就可以了
C. linuxfind查找大于多少天的文件,并删除之
linux查找超过一定时间的文件,并批量删除
1、find . -maxdepth 4 -name "*-*" -mtime 3
-maxdepth的值决定是否对下面的子目录进行递归查找
-mtime 3表示查找3天内的,-mtime +3表示查找超过3天的,也就是查找3天前的文件
2、find . -maxdepth 4 -name "*-*" -mtime 3 | sudo xargs rm -rf
-----------------------------------------------------------------------------------------------------------------------------
find ./ -maxdepth 4 -mtime +3 -a -mtime -20 -type f
-- 如果将xmaxdepth放置于-mtime之后,将会抛出这个错误
find: warning: you have specified the -maxdepth option after a non-option argument -mtime, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it). Please specify options before other arguments.
-----------------------------------------------------------------------------------------------------------------------------
-mtime 0 表示文件修改时间距离当前为0天的文件,即距离当前时间不到1天(24小时)以内的文件。
-mtime 1 表示文件修改时间距离当前为1天的文件,即距离当前时间1天(24小时-48小时)的文件。
-mtime+1 表示文件修改时间为大于1天的文件,即距离当前时间2天(48小时)之外的文件
-mtime -1 表示文件修改时间为小于1天的文件,即距离当前时间1天(24小时)之内的文件
-----------------------------------------------------------------------------------------------------------------------------
-maxdepth 参数详解
-maxdepth选项的作用就是限制find命令在目录中按照递减方式查找文件的时候搜索文件超过某个级别或者搜索过多的目录,这样导致查找速度变慢,查找花费的时间过多。例如,我们要在当前(.)目录技巧子目录中查找一个名叫fred的文件,我们可以使用如下命令
find . -maxdepth 2 -name fred
假如这个fred文件在./sub1/fred目录中,那么这个命令就会直接定位这个文件,查找很容易成功。假如,这个文件在./sub1/sub2/fred目录中,那么这个命令就无法查找到。因为前面已经给find命令在目录中最大的查询目录级别为2,只能查找2层目录下的文件。这样做的目的就是为了让find命令更加>
精确的定位文件,如果你已经知道了某个文件大概所在的文件目录级数,那么加入-maxdepth n 就很快的能在指定目录中查找成功。
也即是-maxdepth 参数指定递归查找级别,如果-maxdepth 2 则查找当前目录递归查找2层,-maxdepth 4 则查找当前目录递归查找4层。
D. linux系统中,写一个shell对指定目录下的文件大于特定值时自动进行备份.加急!
用perl实现较容易
配置文件: /xxx/backup.conf
A 200
B 100
C 50
脚本: /xxx/backup.pl
#!/usr/bin/perl
use strict;
use File::Basename;
# 配置文件名
my $config_file = "/xxx/backup.conf";
# 源目录
my $src_dir = "/tmp";
#备份目录
my $backup_dir = "/xxx/backup";
#当前日期
my $today = `date +%Y%m%d`;
$today =~ s/\n//;
# 读取配置文件
my %conf;
open CONFIG, "<", $config_file;
while(<CONFIG>) {
my($fname, $fsize) = split;
$conf{$fname} = $fsize * 1024 * 1024;
}
close(CONFIG);
# 扫描源目录,附合条件则进行备份
my @files = <$src_dir/*>;
foreach my $file (@files) {
my $file_basename = basename($file);
if ( -f $file && $conf{$file_basename}) {
if( -s $file > $conf{$file_basename} ) {
system "cp ${file} ${backup_dir}/${file_basename}.${today}";
if($?) {
#遇到错误就退出
die " ${file} to ${backup_dir}/${file_basename}.${today} failed!\n";
}
unlink ${file};
}
}
}
E. linux>生成文件超过行数新建
可以使用函数“lseek”。
lseek函数本身不会扩展文件的大小。
lseek允许文件的偏移值超过文件的末端,如果下一次在这个偏移点写入数据,那么在偏移之前的文件末端与偏移点之间的数据将会自动填充为0。
F. linux查找/etc目录下所有大于5M或者小于2M的文件,同时查询结果要求列出文件
摘要 Linux文件查找-find命令 详情查看以下链接 ttps://www.shuo.com/A/QV5Z36VVdy/
G. 64位linux下如何读取大于2G文件的大小
你的物理内存多大?不够的话考虑swap文件增加虚拟内存。
H. 将linux内存值大于某一值后存到一个文件中
操作如以下
#include"stdafx.h"
#include"stdlib.h"
intmain(intargc,char*argv[])
{undefined
FILE*fp;
FILE*fp2;
fp=fopen("C:/notepad.exe","rb");
fp2=fopen("C:/aa.exe","wb");
fseek(fp,0,SEEK_END);
intsize=ftell(fp);
fseek(fp,0,SEEK_SET);
unsignedchar*buffer=(unsignedchar*)malloc(size);
fread(buffer,size,1,fp);
fwrite(buffer,size,1,fp2);
free(buffer);
fclose(fp);
fclose(fp2);
return0;}
I. linux系统打开文件数过大会产生什么问题
在Linux下,我们使用ulimit-n命令可以看到单个进程能够打开的最大文件句柄数量(socket连接也算在里面)。系统默认值1024。对于一般的应用来说(象Apache、系统进程)1024完全足够使用。但是如何象squid、mysql、java等单进程处理大量请求的应用来说就有点捉襟见肘了。如果单个进程打开的文件句柄数量超过了系统定义的值,就会提到“toomanyfilesopen”的错误提示。如何知道当前进程打开了多少个文件句柄呢?下面一段小脚本可以帮你查看:lsof-n|awk'{print$2}'|sort|uniq-c|sort-nr|more在系统访问高峰时间以root用户执行上面的脚本,可能出现的结果如下:#lsof-n|awk'{print$2}'|sort|uniq-c|sort-nr|其中第一行是打开的文件句柄数量,第二行是进程号。得到进程号后,我们可以通过ps命令得到进程的详细内容。ps-aef|grep24204mysql24204241629916:15?00:24:25/usr/sbin/mysqld哦,原来是mysql进程打开最多文件句柄数量。但是他目前只打开了131个文件句柄数量,远远底于系统默认值1024。但是如果系统并发特别大,尤其是squid服务器,很有可能会超过1024。这时候就必须要调整系统参数,以适应应用变化。Linux有硬性限制和软性限制。可以通过ulimit来设定这两个参数。方法如下,以root用户运行以下命令:ulimit-HSn4096以上命令中,H指定了硬性大小,S指定了软性大小,n表示设定单个进程最大的打开文件句柄数量。个人觉得最好不要超过4096,毕竟打开的文件句柄数越多响应时间肯定会越慢。设定句柄数量后,系统重启后,又会恢复默认值。如果想永久保存下来,可以修改.bash_profile文件,可以修改/etc/profile把上面命令加到最后。
J. 在linux系统中,32位机,要打开超大文件(大于4G)并读取其内容用什么函数
atof,atol,atrtod,strtol,strtoul
表头文件 #include<stdlib.h>
定义函数 int atoi(const char *nptr);
函数说明 atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。
返回值 返回转换后的整型数。
附加说明 atoi()与使用strtol(nptr,(char**)NULL,10);结果相同。
范例 /* 将字符串a 与字符串b转换成数字后相加*/
#include<stdlib.h>
mian()
{
char a[]=”-100”;
char b[]=”456”;
int c;
c=atoi(a)+atoi(b);
printf(c=%d\n”,c);
}
执行 c=356
它在Linux下的Vi编辑器能用