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編輯器能用