(আমি বুঝতে পারছি একটি পুরানো প্রশ্ন হল, কিন্তু Google আমাকে এখানে আনা কারণ আমি আউট ঠিক কি চিন্তা করার চেষ্টা করা হয় change
এবং replace
এবং কিভাবে তারা ব্যতিক্রম)।
আমি বিশ্বাস করি যে উভয় replace
এবং change
একটি বিদ্যমান ঠিকানা পরিবর্তন করার জন্য ব্যবহার করা হয়। বিবেচনা:
ip addr add 192.168.1.10/32 dev dummy0
এটি আমাকে পেয়েছে:
32: dummy0: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default
link/ether 5a:ec:58:4f:d1:35 brd ff:ff:ff:ff:ff:ff
inet 192.168.111.10/32 scope global dummy0
valid_lft forever preferred_lft forever
inet6 fe80::58ec:58ff:fe4f:d135/64 scope link
valid_lft forever preferred_lft forever
যদি আমি আবার একই কমান্ডটি চালাই তবে আমি একটি ত্রুটি পেয়েছি:
# ip addr add 192.168.111.10/32 dev dummy0
RTNETLINK answers: File exists
আমি যদি সেই ঠিকানায় ফ্ল্যাগগুলি সংশোধন করতে চাই, তবে আমি change
বা হয় ব্যবহার করতে পারি replace
। এখানে, আমি সেই ঠিকানায় এবং সেটিংস ip addr change
সংশোধন করতে ব্যবহার করি :preferred_lft
valid_lft
# ip addr change 192.168.111.10/32 dev dummy0 preferred_lft 300 valid_lft 300
# ip addr show dummy0
32: dummy0: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default
link/ether 5a:ec:58:4f:d1:35 brd ff:ff:ff:ff:ff:ff
inet 192.168.111.10/32 scope global dynamic dummy0
valid_lft 298sec preferred_lft 298sec
inet6 fe80::58ec:58ff:fe4f:d135/64 scope link
valid_lft forever preferred_lft forever
আচরণ ip addr replace
একই রকম। আসলে, আপনি যদি কোডটি দেখুন তবে সেগুলি প্রায় অভিন্ন ক্রিয়ায় ফলিত:
if (matches(*argv, "change") == 0 ||
strcmp(*argv, "chg") == 0)
return ipaddr_modify(RTM_NEWADDR, NLM_F_REPLACE, argc-1, argv+1);
if (matches(*argv, "replace") == 0)
return ipaddr_modify(RTM_NEWADDR, NLM_F_CREATE|NLM_F_REPLACE, argc-1, argv+1);
দেখে মনে হচ্ছে এখানে উদ্দেশ্যটি change
কেবলমাত্র একটি বিদ্যমান ঠিকানাটি replace
সংশোধন করবে , যখন হয় হয় একটি বিদ্যমান ঠিকানা সংশোধন করবে বা নির্দিষ্ট ঠিকানাটি উপস্থিত না থাকলে একটি নতুন ঠিকানা তৈরি করবে। অনুশীলনে, মনে হচ্ছে এটি উভয়ই change
এবং replace
ঠিকানাটি ইতিমধ্যে উপস্থিত না থাকলে যোগ করবে।
আপনি আসলে একটি নতুন ঠিকানা যুক্ত করবে ও একটি পুরানো এক অপসারণ করতে চান তাহলে, আপনাকে যা করতে হবে যে দুটি ধাপে ব্যবহার করতে হবে, ip addr del
দ্বারা অনুসরণ ip addr add
(অবশ্যই বা অন্যান্য উপায় কাছাকাছি)।
NO
P0
:()